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

集成 iOS 观播 SDK

最近更新时间2023.09.27 17:01:35

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

观播 SDK 提供看直播、发评论、参与抽奖等功能。本文介绍如何将观播 SDK 集成到您的 iOS App 中。

前提条件

  • 您已开通定制版套餐。具体操作,详见计费说明
  • iOS 9.0 及以上版本的真机或模拟器。
  • 安装 Xcode,建议使用最新版本。
  • 安装 CocoaPods,建议使用 1.11.0 或更高版本。可参考 Getting Started with CocoaPods
  • CPU 架构:armv7、arm64、x86_64。
  • 获取直播 License 文件和点播 License 文件、创建 SDK 应用时填写的 App 英文名称以及应用创建后生成的 App ID。详见获取 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
      pod'BDLive', '1.29.1'
    
      # 如果同时集成开播 SDK 和观播 SDK
      pod'BDLive', '1.29.1', :subspecs => [
        'LiveStreaming',
        'Viewer',
      ]  
    end
    
  2. 打开终端窗口,并 cd 到您的工程目录。执行 pod install 命令安装依赖。

步骤二:环境配置

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

  1. 打开 info.plist 文件,添加参数 SSAppID,并设置参数值为在 SDK 应用创建后生成的 App ID。

  2. info.plist 文件中,通过以下任一方式添加权限:

    • 单击 + 添加 Privacy - Photo Library Additions Usage DescriptionPrivacy - Photo Library Usage DescriptionPrivacy - Calendars Usage DescriptionPrivacy - Microphone Usage DescriptionPrivacy - Camera Usage Description 作为 Key,选择 String 作为 Type,并输入在系统弹出授权对话框时的提示信息作为 Value
    • 以 Source Code 的方式打开 info.plist 文件,并添加以下 key 和 string。您可以自定义 string 的值作为在系统弹出授权对话框时的提示信息。
      <!-- 相册写入权限 -->
      <key>NSPhotoLibraryAddUsageDescription</key> 
      <string>App 需要获取您的相册写入权限,用于保存图片到相册</string>
      <!-- 相册访问权限 --> 
      <key>NSPhotoLibraryUsageDescription</key> 
      <string>App 需要获取您的相册访问权限,用于发送图片评论</string>
      <!-- 日历写入权限 -->
      <key>NSCalendarsUsageDescription</key>
      <string>用于直播预约提醒能力</string>
      <!-- 麦克风权限 -->
      <key>NSMicrophoneUsageDescription</key>
      <string>App 需要获取您的麦克风权限,用于连麦</string>
      <!-- 相机权限 -->
      <key>NSCameraUsageDescription</key> 
      <string>App 需要获取您的相机权限,用于连麦</string>
      
  3. (可选)如果需要 App 在后台运行时继续播放音频或者需要使用画中画功能,需要完成以下步骤:

    1. 单击 Signing & Capabilities 页签下的 + Capability,并双击添加 Background Modes
      图片
    2. Background Modes 区域,选择 Audio, AirPlay, and Picture in Picture 复选框。
      图片
  4. 关闭 Bitcode。
    图片

    1. 单击 Build Settings 页签。
    2. Build Options 区域,将 Enable Bitcode 置为 No
  5. 设置播放直播、预告或回放时支持的屏幕方向。

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

    说明

    • 如需观众在全屏模式中可以根据设备朝向实现屏幕的左右自动旋转,必须满足以下条件:
      • 观众设备的竖排方向锁定已关闭。有关如何关闭竖排方向锁定,详见苹果官网文档
      • 您在 Deployment Info 区域同时选择了 Landscape LeftLandscape Right 复选框。
    • 为避免观众点击全屏按钮后的全屏动画显示异常,请确保已勾选 Landscape Right 复选框。
    • 对于观播 SDK 1.28.2 及以上版本,如需禁用全屏模式,可以通过以下代码示例隐藏播放器内的全屏按钮。禁用全屏模式后,您可以在 Deployment Info 区域仅选择 Portrait 复选框。
      [BDLLiveEngine sharedInstance].liveRoomConfiguration.playerConfig.common.enterFullScreenEnable = NO;

步骤三:导入 License

将直播 License 文件和点播 License 文件添加到 Xcode 的 App Target 中。勾选 Copy items if needed,并单击 Finish

步骤四:初始化 TTSDK

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

#import <TTSDKFramework/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];
}

功能实现

进入直播间

在 Xcode 的 App Target 中,打开定义如何进入直播间的文件并添加以下代码:

说明

通过调用 CreateActivityAPIV2ListActivityAPI 获取直播间的活动 ID,调用 GetSDKTokenAPI 获取进入直播间所需的授权 Token。

#import <BDLive/BDLive.h>

// 创建进入直播间所需的 Activity
BDLActivity *activity = [[BDLActivity alloc] init];
activity.activityId = @(ACTIVITY_ID); // 将 ACTIVITY_ID 替换为直播间的活动 ID
activity.token = @"TOKEN"; // 将 TOKEN 替换为进入该直播间所需的授权 Token
activity.authMode = BDLActivityAuthModePublic; // 公开模式,由观众输入昵称
activity.nickName = @"NICKNAME"; // 将 NICKNAME 替换为观众昵称。在公开模式下且该参数值非空时,会以该参数值作为观众的昵称
activity.isPortrait = YES;

// 进入直播间
[[BDLLiveEngine sharedInstance] joinLiveRoomWithActivity:activity];

常见问题

为什么我可以正常观看预告和回放,却加载不出直播内容?

确保您创建 SDK 应用时填写的 Bundle ID(项目包名)以及应用创建后生成的 App ID 分别与初始化 TTSDK 时传入的 Bundle ID 和 App ID 相同,同时保证您初始化 TTSDK 时传入的 Bundle ID 和工程配置的 BundleID 一致,否则会出现鉴权失败的问题。