You need to enable JavaScript to run this app.
导航
iOS 接入
最近更新时间:2023.07.11 11:03:54首次发布时间:2023.02.13 20:44:30

本文介绍集成 veVOS 解决方案相关 SDK 的方法,根据文档提供的操作步骤进行配置,您可以将 veVOS 解决方案下的 SDK 集成到 iOS App 工程中。

开发环境要求

  • iOS 9.0 及以上的版本 iPhone 或者 iPad 真机。
  • Xcode 9.0 以上版本。

前提条件

已获取 VeVoS 的版本号

操作步骤

Step 1:获取 License

veVOS 互动直播场景下,您需要获取视频直播 License、实时音视频(RTC)Licnese 和智能美化特效(CV)License。

产品对应功能模块获取方式
视频直播直播推流、直播拉流获取视频直播 License
实时音视频连麦请联系您的商务经理
智能美化特效贴纸特效、美化滤镜、人像智能、手势与人体检测等请联系您的商务经理

Step 2:集成 SDK

  1. 修改 Podfile,在 Podfile 起始位置添加火山引擎 source。
# 1. Cocoapods 官方源;github 或 cdn 二选一
source "https://github.com/Cocoapods/Specs.git" # github 源
# source "https://cdn.cocoapods.org" # cdn 源

# 2. 火山引擎源
source "https://github.com/volcengine/volcengine-specs.git"
  1. 修改 Podfile,添加 veVOS 依赖。

注意

Podfile 中的 $VEVOS_SPEC_KEY$VEVOS_SPEC_SECRET 的取值请先联系商务获取并进行替换,否则会导致 pod install 报错。

target 'Your App Target Name' do
    $VEVOS_SPEC_KEY = "请联系商务获取"
    $VEVOS_SPEC_SECRET = "请联系商务获取"
    # 请更新版本号
    pod "veVOS", "x.y.z" :subspecs => ["LivePull", "LivePush", "CV", "RTC"]
    # 集成 AppLog
    pod "RangersAppLog", "~>6.13.0"
end

上述 Podfile 中的 Subspec Name 与功能模块的对应关系说明如下。

Subspec Name对应功能模块
LivePull直播拉流
LivePush直播推流
CV特效
RTC实时音视频

说明

各 Subspec 均支持单独集成,您可以按需调整。

  1. 执行 pod install --repo-update 完成下载和安装,至此,实现短视频场景功能的相关 SDK 已经集成到项目中。

Setp 3:配置权限

  1. 配置需要使用系统权限。使用 SDK 的音视频功能,需要授权麦克风和摄像头的权限。在 info.plist 中配置开启摄像头和麦克风权限。
  • NSCameraUsageDescription
  • NSMicrophoneUsageDescription
  1. 关闭 bitcode。
  2. 如果您使用的是 Xcode 14,请修改 Project Format 为 Xcode 13.0-compatible。

Setp 4:初始化 SDK

  1. 集成 TTSDK 后,在 App 启动时需要对 TTSDK 进行初始化操作,操作示例如下所示。
#import <TTSDK/TTSDKManager.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Your code...
    [self initTTSDK];
    // Your code...
    return YES;
}

- (void)initTTSDK {
    // .....
}
  1. 创建 TTSDKConfiguration。
- (void)initTTSDK {
    // 使用申请到的 APPID 创建 TTSDKConfiguration
    TTSDKConfiguration *configuration = [TTSDKConfiguration defaultConfigurationWithAppID:@"xxxxxx"];
    // 填入控制台的 App 信息
    configuration.appName = @"AppName";
    configuration.channel = @"local_test";
    configuration.bundleID = @"BundleID";
}
  1. 设置 License 路径。
- (void)initTTSDK {
    //...
    configuration.licenseFilePath = [NSBundle.mainBundle pathForResource:@"path/to/license" ofType:nil];
    //...
}
  1. 将 TTSDKConfiguration 传入 TTSDKManager。
- (void)initTTSDK {
    // 使用申请到的 APPID 创建 TTSDKConfiguration
    TTSDKConfiguration *configuration = [TTSDKConfiguration defaultConfigurationWithAppID:@"xxxxxx"];
    // 填入控制台的 App 信息
    configuration.appName = @"AppName";
    configuration.channel = @"local_test";
    configuration.bundleID = @"BundleID";
    configuration.licenseFilePath = [NSBundle.mainBundle pathForResource:@"path/to/license" ofType:nil];
    [TTSDKManager startWithConfiguration:configuration];
}

Step 5:日志上报

线上问题的排查和质量平台的数据展示都依赖 SDK 上报的日志,因此,日志上报功能默认开启。如有特殊的数据保密要求,您可以通过将 TTSDKConfiguration 的 shouldInitAppLog 配置为 NO 来关闭日志上报。

- (void)initTTSDK {
//....    
configuration.shouldInitAppLog = NO;
//....
}

Step 6:功能接入

实现连麦功能