集成Jazz SDK
环境要求
iOS: 14.x 及以上; Swift: 5.7 及以上; Xcode: 14.3.1 及以上
SDK安装指南
https://developers.sber.ru/docs/ru/jazz/sdk/overview
许可协议
通过依赖管理器安装
CocoaPods
为了将JazzSDK集成到您的应用中,您需要在您的Podfile
中指定它
pod 'JazzSDK'
Carthage
为了将JazzSDK集成到您的应用中,您需要在其Cartfile
中指定它
github "salute-developers/jazz-ios-sdk"
Swift Package Manager
为了将JazzSDK集成到您的应用中,您需要在其Package.swift
中指定它
dependencies: [
.package(url: "https://github.com/salute-developers/jazz-ios-sdk.git")
]
接入项目
-
请将存档中的内容复制到您的项目目录中
-
将所有 .xcframework 文件链接到 .xcodeproj 中相应的目标。必需框架的完整列表
- JazzCore.xcframework
- JazzSDK.xcframework
- LibSberCast.xcframework
- WebRTC.xcframework
重要:在“嵌入的二进制文件”部分需要添加所有库
- 请复制或创建以下资源中的符号链接
- DevicesDesignSystemResources.bundle
- JazzResources.bundle
接下来,将所有创建的资源链接添加到项目中并检查是否在“复制资源束”部分中(位于“构建阶段”标签页)。
- 更新您的应用程序的 Info.plist
需要提供对请求的描述
- NSMicrophoneUsageDescription - 以访问麦克风
- NSCameraUsageDescription - 以访问相机
- NSBluetoothAlwaysUsageDescription 和 NSBluetoothPeripheralUsageDescription - 在无缝将会议转换到 Sber 设备时访问蓝牙
此外,为了在本地网络中搜索设备,还需要添加
<key>NSBonjourServices</key>
<array>
<string>_staros._tcp</string>
</array>
使用 SDK
为了访问 Jazz SDK 的功能,请在需要使用 SDK 的地方添加 import JazzSDK
。在初始化 SDK 之前(很可能是在应用程序启动时)需要调用 Jazz.initialize
。之后,您可以通过 JazzSession.shared
方法使用 SDK 中的所有功能。
接入屏幕共享功能
- 在您的项目中创建一个 广播上传扩展 类型的目标(取消选择“包含 UI 扩展”)
- 将 JazzScreenShareImpl.xcframework 和 JazzSDKScreenShare.xcframework 链接到新的目标。重要:在“嵌入的二进制文件”部分中不需要添加
- 复制或创建 JazzScreenShareImpl/JazzScreenShareResources.bundle 的符号链接
- 在应用程序的主目标以及新的 广播上传扩展 目标中,添加 app groups capability,并确保使用相同的组标识符
- 更新新的目标和主目标的应用 Info.plist,以便包含等于组标识符的
RTCAppGroupIdentifier
键。 - 实现
SampleHandler
以使其如下所示
import ReplayKit
import JazzSDKScreenShare
class SampleHandler: RPBroadcastSampleHandler {
private lazy var screenShare = JazzScreenShare(onError: finishBroadcastWithError(_:))
override func broadcastStarted(withSetupInfo setupInfo: [String : NSObject]?) {
screenShare.broadcastStarted(withSetupInfo: setupInfo)
}
override func broadcastFinished() {
screenShare.broadcastFinished()
}
override func processSampleBuffer(_ sampleBuffer: CMSampleBuffer, with sampleBufferType: RPSampleBufferType) {
screenShare.processSampleBuffer(sampleBuffer, with: sampleBufferType)
}
}
- 在应用的主目标中初始化
JazzSDK
时,在JazzSettings
中指定screenShareExtensionIdentifier
等于你的 广播上传扩展 的bundleId
。