You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们
导航

iOS

最近更新时间2023.09.27 15:15:22

首次发布时间2022.01.17 10:33:21

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

开发环境要求

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

前提条件

集成 SDK

直播支持静态库在线集成和动态库集成 2 种 SDK 集成方法。

  • 在线集成:使用 CocoaPods 自动加载;
  • 离线集成:如果在线集成时,与其他 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

举例来说,如果您在控制台获取的精简版推流 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']

其中:

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

Step 4:安装 SDK

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

pod install

方法二:离线集成

如果静态库集成时,与其他 SDK 存在符号冲突,请使用动态库集成。

Step 1:(可选)移除静态库依赖

  • 如果您未使用在线集成,请跳过 Step 1
  • 如果您尝试过在线集成且出现问题,先移除静态库依赖,为动态库集成做准备。

修改 Podfile 对 TTSDK 的依赖。

alt

Step 2:添加 SDK 文件

  1. 将控制台下载的 SDK 进行解压。
  2. 将解压后的 TTSDK.framework 文件放到项目文件夹下。例如下图所示,拖拽动态库 TTSDKFramework.framework 到 TTSDKDemo 下。

Step 3:修改工程配置

修改项目 target 配置,将 TTSDKFramework.framework 修改为 Embed&Signe

Step 4:代码修改

修改头文件引入方式,头文件在 TTSDKFramework 目录下。

修改使用的代码。如果使用直播推流,出现 crash,请先确认下,以下信息是否修改。

配置权限

使用 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 不一致,会导致鉴权失败。