最近更新时间:2023.09.27 15:15:22
首次发布时间:2022.01.17 10:33:21
本章节介绍 iOS 推/拉流 SDK 的支持系统、开发环境和集成方式。根据如下步骤进行操作,即可完成 iOS 推/拉流 SDK 集成工作。
直播支持静态库在线集成和动态库集成 2 种 SDK 集成方法。
使用 CocoaPods,在工程的 Podfile 文件中添加依赖,并执行 pod install,自动下载更新推/拉流 SDK。
在 Mac 中安装 Ruby 环境,在终端窗口中输入安装 CocoaPods 命令。
sudo gem install cocoapods
在您的工程目录中执行如下命令,创建 Podfile 文件。
pod init
在您的 Podfile 文件中添加依赖。请登录控制台,在 SDK 管理页面获取集成地址。精简版和互动版的在线集成地址不同,请勿通过修改示例代码的版本号的方式进行集成。
推流 SDK
举例来说,如果您在控制台获取的精简版推流 SDK 在线集成地址如下所示。
TTSDK:source 'https://github.com/volcengine/volcengine-specs.git' pod 'TTSDK', 'x.x.x.x-premium', :subspecs => ['LivePush']
则在 Podfile 文件中添加依赖的代码示例如下所示。
source 'https://github.com/volcengine/volcengine-specs.git' pod 'TTSDK', 'x.x.x.x-premium', :subspecs => ['LivePush']
其中:
pod 'TTSDK', 'x.x.x.x', :subspecs => ["LivePush", "LivePush-RTMPS"]
pod 'TTSDK', 'x.x.x.x', :subspecs => ["LivePush-RTS"]
拉流 SDK
举例来说,如果您在控制台获取的精简版拉流 SDK 在线集成地址如下所示。
TTSDK:source 'https://github.com/volcengine/volcengine-specs.git' pod 'TTSDK', 'x.x.x.x-premium', :subspecs => ['LivePull']
则在 Podfile 文件中添加依赖的代码示例如下所示。
source 'https://github.com/volcengine/volcengine-specs.git' pod 'TTSDK', 'x.x.x.x-premium', :subspecs => ['LivePull']
如果您需要使用 RTM 协议拉流或在观众端实现连麦功能,则需要将 LivePull 替换为 LivePull-RTS 子组件:pod 'TTSDK', 'x.x.x.x', :subspecs => ["LivePull-RTS"]
在终端窗口中输入如下命令,更新本地库文件,并安装 SDK。
pod install
如果静态库集成时,与其他 SDK 存在符号冲突,请使用动态库集成。
修改 Podfile 对 TTSDK 的依赖。
修改项目 target 配置,将 TTSDKFramework.framework 修改为 Embed&Signe。
修改头文件引入方式,头文件在 TTSDKFramework 目录下。
修改使用的代码。如果使用直播推流,出现 crash,请先确认下,以下信息是否修改。
使用 SDK 的音视频功能,需要授权麦克风和摄像头的权限。在 info.plist 中配置开启摄像头和麦克风权限。
- (void)requestAuthorization { AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeAudio]; if (authStatus != AVAuthorizationStatusAuthorized) { [[AVAudioSession sharedInstance] performSelector:@selector(requestRecordPermission:) withObject:^(BOOL granted) { if (granted) { NSLog(@"授权成功!"); } else { NSLog(@"授权失败!"); } }]; } }
拷贝 License 文件到工程目录下。并记住 License 文件的存放路径。
注意
License 文件已绑定了 BundleID 和 AppID。如果 License 文件与工程的 BundleID 或 AppID 不一致,会导致鉴权失败。