You need to enable JavaScript to run this app.
导航
iOS
最近更新时间:2024.01.11 16:20:31首次发布时间:2022.01.17 10:33:21

本章节介绍 iOS 推/拉流 SDK 的支持系统、开发环境和集成方式。根据如下步骤进行操作,即可完成 iOS 推/拉流 SDK 集成工作。

说明

本文内容适用于 1.40.2 及以上版本。如果您已经集成了旧版本的 SDK,可以参考 iOS 动态库升级指南 进行动态库版本升级,或由静态库切换到动态库。

开发环境要求

  • iOS 11.0 以上的 iPhone 或者 iPad 真机。
  • Xcode 14.0 以上版本。

前提条件

集成 SDK

您可以通过在线或离线的方式集成直播 SDK。

  • 在线集成:使用 CocoaPods 自动加载。支持动态库和静态库 2 种 SDK 集成方法。
  • 离线集成:您可通过提交工单联系技术支持,了解离线集成的具体步骤。

本文介绍在线集成的具体步骤。

方法一:动态库集成(推荐)

使用 CocoaPods,在工程的 Podfile 文件中添加依赖,并执行 pod install,自动下载更新推/拉流 SDK。

Step 1:安装 CocoaPods

在 Mac 中安装 Ruby 环境,在终端窗口中输入安装 CocoaPods 命令。

sudo gem install cocoapods

Step 2:创建 Podfile 文件

在您的工程目录中执行如下命令,创建 Podfile 文件。

pod init

Step 3:添加依赖

在您的 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']

其中:

  • 您需要手动将 Pod 名称修改为 TTSDKFramework
  • 如果您需要使用 RTMPS 协议推流,则需要额外添加 LivePush-RTMPS 子组件:pod 'TTSDKFramework', 'x.x.x.x', :subspecs => ["LivePush", "LivePush-RTMPS"]
  • 如果您需要使用 RTM 协议推流或在主播端实现连麦功能,则需要将 LivePush 替换为 LivePush-RTS 子组件:pod 'TTSDKFramework', '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 'TTSDKFramework', 'x.x.x.x-premium', :subspecs => ['LivePull']

其中:

  • 您需要手动将 Pod 名称修改为 TTSDKFramework
  • 如果您需要使用 RTM 协议拉流或在观众端实现连麦功能,则需要将 LivePull 替换为 LivePull-RTS 子组件:pod 'TTSDKFramework', 'x.x.x.x', :subspecs => ["LivePull-RTS"]

Step 4:安装 SDK

在终端窗口中输入如下命令,更新本地库文件,并安装 SDK。

pod install

方法二:静态库集成

静态库的集成步骤与动态库相同。您只需将集成步骤中的 Pod 名称从 TTSDKFramework 修改为 TTSDK,即可实现静态库的集成。

配置权限

使用 SDK 的音视频功能,需要授权麦克风和摄像头的权限。在 info.plist 中配置开启摄像头和麦克风权限。

  • NSCameraUsageDescription
  • NSMicrophoneUsageDescription
- (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 文件的存放路径。

注意

License 文件已绑定了 BundleID 和 AppID。如果 License 文件与工程的 BundleID 或 AppID 不一致,会导致鉴权失败。