观播 SDK 提供看直播、发评论、参与抽奖等功能。本文介绍如何将观播 SDK 集成到您的 iOS App 中。
说明
如使用 Apple silicon 的 Mac,则需使用 Rosetta 模拟器。
在项目的 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 # 如需优化包体积,可使用 ViewerWithoutRTC 作为 subspecs 集成不包含超低延时直播以及观众连麦功能的观播 SDK pod'BDLive', '1.47.3' # 同时集成开播 SDK 和观播 SDK # 如需优化包体积,可将 LiveStreaming 替换为 LiveStreamingWithoutRTC 集成不包含录屏直播功能的开播 SDK,将 Viewer 替换为 ViewerWithoutRTC 集成不包含超低延时直播以及观众连麦功能的观播 SDK pod'BDLive', '1.47.3', :subspecs => [ 'LiveStreaming', 'Viewer', ] end
打开终端窗口,并 cd
到您的项目目录。执行 pod install
命令安装依赖。
默认使用动态库版本的 TTSDK。如需使用静态库版本的 TTSDK,请完成以下步骤:
在添加依赖时,在版本号后添加 -static-ttsdk
。详见上述 Podfile
文件配置。
# 只集成观播 SDK pod'BDLive', '1.47.3-static-ttsdk' # 同时集成开播 SDK 和观播 SDK pod'BDLive', '1.47.3-static-ttsdk', :subspecs => [ 'LiveStreaming', 'Viewer', ]
在初始化 TTSDK 时,将 #import <TTSDKFramework/TTSDKManager.h>
替换为 #import <TTSDK/TTSDKManager.h>
。详见步骤四:初始化 TTSDK。
在 Xcode 的 App Target 下,完成以下操作:
打开 info.plist
文件,添加参数 SSAppID
,并设置参数值为在 SDK 应用创建后生成的 App ID。
在 info.plist
文件中,通过以下任一方式添加权限:
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>
(可选)如果需要 App 在后台运行时继续播放音频或者需要使用画中画功能,需要完成以下步骤:
(可选)如果您的项目使用了 Bitcode,需要关闭 Bitcode。
设置全屏播放直播、预告或回放时支持的屏幕方向。
说明
[BDLLiveEngine sharedInstance].liveRoomConfiguration.playerConfig.common.enterFullScreenEnable = NO;
将直播 License 文件和点播 License 文件添加到 Xcode 的 App Target 中。勾选 Copy items if needed,并单击 Finish。
在 Xcode 的 App Target 下,打开 AppDelegate.m
文件初始化 TTSDK。
// 如需使用静态库版本的 TTSDK,请替换为 #import <TTSDK/TTSDKManager.h> #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 文件的名称 configuration.bizType = TTSDKServiceBizType_All & ~TTSDKServiceBizType_Live; [TTSDKManager startWithConfiguration:configuration]; // 直播 License configuration.licenseFilePath = [[NSBundle mainBundle] pathForResource:@"LIVE_LICENSE_NAME" ofType:@"lic"]; // 将 LIVE_LICENSE_NAME 替换为直播 License 文件的名称 configuration.bizType = TTSDKServiceBizType_Live; [TTSDKManager startWithConfiguration:configuration]; }
在 Xcode 的 App Target 中,打开定义如何进入与离开直播间的文件并添加以下代码。
说明
通过调用 CreateActivityAPIV2 或 ListActivityAPI 接口获取直播间的活动 ID,调用 GetSDKTokenAPI 接口获取进入直播间所需的授权 Token。
#import <BDLive/BDLive.h> BDLActivity *activity = [[BDLActivity alloc] init]; activity.activityId = @(ACTIVITY_ID); // 将 ACTIVITY_ID 替换为直播间的活动 ID。 activity.token = @"TOKEN"; // 将 TOKEN 替换为进入该直播间所需的授权 Token。 activity.authMode = BDLActivityAuthModePublic; // 直播间鉴权模式。此处以公开模式为例。观众无需登录即可观看直播、查看评论等。 activity.isPortrait = YES; // 是否为竖屏直播间。此处以竖屏直播间为例。
在 Xcode 的 App Target 中,打开定义如何进入与离开直播间的文件并添加相关方法。
以下示例代码展示了进入与离开完整直播间的方法。
说明
有关如何在接入完整直播间、完整播放器、独立播放器或浮窗播放器的基础上进入与离开直播间,详见基础功能。
... // 进入直播间。 [[BDLLiveEngine sharedInstance] joinLiveRoomWithActivity:activity success:^{ // 进入直播间成功 } failure:^(NSError * _Nonnull error) { // 进入直播间失败 }]; // 离开直播间。 - (void)leaveLiveRoom { [[BDLLiveEngine sharedInstance] leaveLiveRoom]; }
自 SDK 1.31.0 版本开始,您可以按需完成以下操作优化 SDK 的包体积。
说明
仅 1.31.0 - 1.34.0 版本需完成该步骤。
Viewer
替换为 ViewerWithoutRTC
。详见步骤一:添加依赖。... # 只集成观播 SDK pod'BDLive', '1.47.3-static-ttsdk', :subspecs => [ 'ViewerWithoutRTC', ] # 同时集成开播 SDK 和观播 SDK pod'BDLive', '1.47.3-static-ttsdk', :subspecs => [ 'LiveStreamingWithoutRTC', # 集成不包含录屏直播功能的开播 SDK 'ViewerWithoutRTC', ] end