You need to enable JavaScript to run this app.
导航

集成 iOS 开播 SDK

最近更新时间2024.04.29 15:55:58

首次发布时间2022.02.24 19:18:57

开播 SDK 提供录屏直播和视频直播两大功能。本文介绍如何将开播 SDK 集成到您的 iOS App 中。

前提条件

  • 您已开通旗舰版或定制版套餐。详见计费说明
  • iOS 9.0 及以上版本的真机。

    说明

    如使用静态库版本 TTSDK,则需使用 iOS 11.0 及以上版本的真机。

  • 安装 Xcode,建议使用最新版本。
  • 安装 CocoaPods,建议使用 1.11.0 或更高版本。可参考 Getting Started with CocoaPods
  • CPU 架构:armv7 或 arm64(如使用静态库版本 TTSDK,则不支持 armv7)。
  • 获取直播 License 文件和点播 License 文件、创建 SDK 应用时填写的 App 英文名称以及应用创建后生成的 App ID。详见获取 License
  • 如果您需要使用美颜和特效功能,联系企业直播技术支持获取计算机视觉(CV)License 以及资源包。

集成步骤

步骤一:添加依赖

  1. 在项目的 Podfile 文件中添加依赖。

    说明

    如果您的项目尚未使用过 CocoaPods,在项目的根目录下,执行 pod init && pod install 命令,可以得到 Podfile 文件。

    source 'https://github.com/cocoapods/Specs.git'
    source 'https://github.com/volcengine/volcengine-specs.git'
    
    # 您 App Target 的名字
    target 'XXXX' do
      # 只集成开播 SDK
      # 如需优化包体积,请将 1.34.1 替换为 1.34.1-static-ttsdk 使用静态库版本的 TTSDK。在使用静态库版本 TTSDK 的基础上,可将 LiveStreaming 替换为 LiveStreamingWithoutRTC 集成不包含超低延时直播以及录屏直播功能的开播 SDK,从而进一步优化包体积
      pod'BDLive', '1.34.1', :subspecs => [
        'LiveStreaming', 
      ]
    
      # 同时集成开播 SDK 和观播 SDK
      # 如需优化包体积,请将 1.34.1 替换为 1.34.1-static-ttsdk 使用静态库版本的 TTSDK。在使用静态库版本 TTSDK 的基础上,可将 LiveStreaming 替换为 LiveStreamingWithoutRTC 集成不包含超低延时直播以及录屏直播功能的开播 SDK,将 Viewer 替换为 ViewerWithoutRTC 集成不包含超低延时直播以及观众连麦功能的观播 SDK,从而进一步优化包体积
      pod'BDLive', '1.34.1', :subspecs => [
        'LiveStreaming', 
        'Viewer', 
      ]
    end
    
  2. 打开终端窗口,执行 cd 命令进入您的项目目录。执行 pod install 命令安装依赖。

步骤二:配置环境

在 Xcode 的 App Target 下,完成以下操作:

  1. 打开 info.plist 文件并通过以下任一方式添加权限:

    • 单击 + 添加 Privacy - Photo Library Usage DescriptionPrivacy - Microphone Usage DescriptionPrivacy - Camera Usage Description 作为 Key,选择 String 作为 Type,并输入在系统弹出授权对话框时的提示信息作为 Value
    • 以 Source Code 的方式打开 info.plist 文件,并添加以下 key 和 string。您可以自定义 string 的值作为在系统弹出授权对话框时的提示信息。
      <!-- 相册权限 -->
      <key>NSPhotoLibraryUsageDescription</key> 
      <string>App 需要获取您的相册权限,用于将本地图片、视频合入直播流</string>
      <!-- 麦克风权限 -->
      <key>NSMicrophoneUsageDescription</key> 
      <string>App 需要获取您的麦克风权限,用于采集直播声音</string>
      <!-- 相机权限 --> 
      <key>NSCameraUsageDescription</key> 
      <string>App 需要获取您的相机权限,用于采集直播视频</string>
      
  2. 如果需要 App 在后台运行时继续录制音频或者需要使用录屏直播功能,需要完成以下步骤:

    1. 单击 Signing & Capabilities 页签下的 + Capability,并双击添加 Background Modes
      图片
    2. Background Modes 区域,选择 Audio, AirPlay, and Picture in Picture 复选框。
      图片
  3. (可选)如果您的项目使用了 Bitcode,需要关闭 Bitcode。
    图片

    1. 单击 Build Settings 页签。
    2. Build Options 区域,将 Enable Bitcode 置为 No
  4. 设置开播支持的屏幕方向。

    1. 单击 General 页签。
    2. Deployment Info 区域,分别选择 iPhone OrientationiPad OrientationPortraitLandscape Right 复选框。
      图片

步骤三:导入 License

  1. 将直播 License 文件和点播 License 文件添加到 Xcode 的 App Target 中。勾选 Copy items if needed,并单击 Finish
  2. (可选)解压缩 CV 资源包(包含 CV License)并将其添加到 Xcode 的 App Target中。在将文件添加至 Target 中时,勾选 Copy items if needed 并单击 Finish

步骤四:初始化 TTSDK

在 Xcode 的 App Target 下,打开 AppDelegate.m 文件初始化 TTSDK。

#import <TTSDKFramework/TTSDKManager.h> // 如需使用静态库版本的 TTSDK,请替换为 #import <TTSDK/TTSDKManager.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [self initTTSDK];
    return YES;
}

- (void)initTTSDK {
    TTSDKConfiguration *configuration = [TTSDKConfiguration defaultConfigurationWithAppID:@"APP_ID"]; // 将 APP_ID 替换为在 SDK 应用创建后生成的 App ID
    configuration.appName = @"APP_NAME"; // 将 APP_NAME 替换为创建 SDK 应用时填写的 App 英文名称
    configuration.channel = @"CHANNEL_NAME"; // 将 CHANNEL_NAME 替换为 App 的渠道名称,例如 App Store
    configuration.bundleID = @"BUNDLE_ID"; // 将 BUNDLE_ID 替换为 App 的唯一标识(Bundle Identifier)
    
    // 分别设置点播 License 和直播 License
    // 点播 License
    configuration.licenseFilePath = [[NSBundle mainBundle] pathForResource:@"VOD_LICENSE_NAME" ofType:@"lic"]; // 将 VOD_LICENSE_NAME 替换为点播 License 文件的名称
    [TTSDKManager startWithConfiguration:configuration];
    
    // 直播 License
    configuration.licenseFilePath = [[NSBundle mainBundle] pathForResource:@"LIVE_LICENSE_NAME" ofType:@"lic"]; // 将 LIVE_LICENSE_NAME 替换为直播 License 文件的名称
    [TTSDKManager startWithConfiguration:configuration];
}

优化包体积

自 SDK 1.31.0 版本开始,您可以按需完成以下操作优化 SDK 的包体积。

  1. 使用静态库版本的 TTSDK。
    您必须同时完成以下操作:
  2. 集成不包含超低延时直播以及录屏直播功能的开播 SDK。
    在添加依赖时,将 LiveStreaming 替换为 LiveStreamingWithoutRTC。详见步骤一:添加依赖
    示例代码如下所示:
    ...
      # 只集成开播 SDK
      pod'BDLive', '1.34.1-static-ttsdk', :subspecs => [
        'LiveStreamingWithoutRTC', 
      ]
    
      # 同时集成开播 SDK 和观播 SDK
      pod'BDLive', '1.34.1-static-ttsdk', :subspecs => [
        'LiveStreamingWithoutRTC', 
        'ViewerWithoutRTC', 
      ]
    end
    

常见问题

通过 Xcode 15 使用静态库版本的 TTSDK时,编译出现 duplicate symbol 错误怎么办?

Xcode 15 的已知问题导致。详见苹果开发者论坛
您可以在 Xcode 的 App Target 下,单击 Build Settings > Other Linker Flags,并添加 -ld64。