本章节介绍 iOS 推/拉流 SDK 的支持系统、开发环境和集成方式。根据如下步骤进行操作,即可完成 iOS 推/拉流 SDK 集成工作。
说明
本文内容适用于 1.40.2 及以上版本。如果您已经集成了旧版本的 SDK,可以参考 iOS 动态库升级指南 进行动态库版本升级,或由静态库切换到动态库。
您可以通过在线或离线的方式集成直播 SDK。
本文介绍在线集成的具体步骤。
使用 CocoaPods,在工程的 Podfile 文件中添加依赖,并执行 pod install,自动下载更新推/拉流 SDK。
在 Mac 中安装 Ruby 环境,在终端窗口中输入安装 CocoaPods 命令。
sudo gem install cocoapods
在您的工程目录中执行如下命令,创建 Podfile 文件。
pod init
在您的 Podfile 文件中添加依赖。请登录控制台,在应用管理页面获取集成地址。精简版和互动版的在线集成地址不同,请勿通过修改示例代码的版本号的方式进行集成。
推流 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 'TTSDKFramework', 'x.x.x.x-premium', :subspecs => ['LivePush']
其中:
TTSDKFramework
。pod 'TTSDKFramework', 'x.x.x.x', :subspecs => ["LivePush-RTS"]
pod 'TTSDKFramework', 'x.x.x.x', :subspecs => ["LivePush", "LivePush-RTMPS"]
pod 'TTSDKFramework', 'x.x.x.x', :subspecs => ["LivePush", "RTCSDK"]
拉流 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 'TTSDKFramework', 'x.x.x.x-premium', :subspecs => ['LivePull']
其中:
TTSDKFramework
。pod 'TTSDKFramework', 'x.x.x.x', :subspecs => ["LivePull-RTS"]
pod 'TTSDKFramework', 'x.x.x.x', :subspecs => ["LivePull", "RTCSDK"]
在终端窗口中输入如下命令,更新本地库文件,并安装 SDK。
pod install
静态库的集成步骤与动态库相同。您只需将集成步骤中的 Pod 名称从 TTSDKFramework
修改为 TTSDK
,即可实现静态库的集成。
使用 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 不一致,会导致鉴权失败。