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