1. 接入 SDK
1.1 将
VirtualmanStreamSDK.xcframework 拖入 Xcode 工程:Target > General > Frameworks, Libraries, and Embedded Content
设置为 Embed & Sign
1.2 在 Podfile 中添加 SDK 所需依赖:
platform :ios, '13.0'use_frameworks!target 'YourApp' dopod 'TXLiteAVSDK_TRTC', :podspec => 'https://liteav.sdk.qcloud.com/pod/liteavsdkspec/customer/TXLiteAVSDK_TRTC_shuziren_13.0.20262.podspec'end
注意:
TXLiteAVSDK_TRTC_shuziren_13.0.20262 是专为数智人场景定制的 TRTC 版本,包含 Alpha 通道视频等数智人专属能力,请勿替换为通用版本。1.3 执行
pod install 安装依赖。2. 配置权限
SDK 需要麦克风和相机权限,请在 Info.plist 中配置:
NSMicrophoneUsageDescription: 需要麦克风权限来进行语音驱动NSCameraUsageDescription: TRTC需要相机权限
3. 配置凭证
在
Config.swift 中填入您的数智人项目配置:struct Config {static let APP_KEY = "xxx"static let ACCESS_TOKEN = "xxx"static let ASSET_VIRTUALMAN_KEY = "xxx" // Asset 建流时使用static let VIRTUALMAN_PROJECT_ID = "xxx" // Project 建流时使用}
4. 初始化及使用
// 添加 Virtualmanvirtualman = Virtualman(frame: view.bounds)view.addSubview(virtualman)// 设置 WebSocket 事件监听(可选,用于感知连接状态)virtualman.setWsDelegate(self)// 初始化 SDK(配置鉴权参数和建流所需参数)let params = VirtualmanParams(appkey: Config.APP_KEY, accesstoken: Config.ACCESS_TOKEN)// 配置 projectId(Project 建流时使用,配置后可查询 listSessionOfProjectid)let projParams = VirtualmanProjectParams(virtualmanProjectId: Config.VIRTUALMAN_PROJECT_ID)projParams.extraInfo = ExtraInfo(alphaChannelEnable: true)params.virtualmanProjectParams = projParams// 配置 assetKey(Asset 建流时使用,配置后可查询 listSessionOfAssetVK)let assetParams = AssetVirtualmanParams(assetVirtualmanKey: Config.ASSET_VIRTUALMAN_KEY)assetParams.extraInfo = ExtraInfo(alphaChannelEnable: true)params.assetVirtualmanParams = assetParamsvirtualman.initSDK(params: params)// 方式一:通过 ProjectId 建流virtualman.open { sessionId, error inif let sessionId = sessionId {print("建流成功, sessionId: \\(sessionId)")} else {print("建流失败: \\(error ?? "unknown")")}}// 方式二:通过 AssetVirtualmanKey 建流virtualman.openByAsset { sessionId, error inif let sessionId = sessionId {print("建流成功, sessionId: \\(sessionId)")} else {print("建流失败: \\(error ?? "unknown")")}}// 发送文本(需要先建流)virtualman.chat(ChatParams(text: "你好", isNewChat: true))// 查询会话列表(仅需 initSDK,无需建流)virtualman.listSessionOfUin { result in print(result) }virtualman.listSessionOfProjectid { result in print(result) }virtualman.listSessionOfAssetVK { result in print(result) }// 关流(页面销毁时调用)virtualman.close()
5. 监听 WebSocket 状态(可选)
extension ViewController: VirtualmanWsDelegate {func onWsOpen() {print("WebSocket 已连接,可以发送消息")}func onWsMessage(_ text: String) {print("收到WS消息: \\(text)")}func onWsClosed(code: UInt16, reason: String) {print("WebSocket 已断开")}func onWsFailure(_ error: Error?) {print("WebSocket 连接失败")}}
6. 运行 Demo
6.1 打开工程
cd ios-demoopen VirtualmanStreamDemo.xcworkspace
注意:
必须打开
.xcworkspace(白色图标),不要打开 .xcodeproj。6.2 配置签名
1. 在 Xcode 左侧导航中单击项目(蓝色图标)。
2. 选择 Targets > VirtualmanStreamDemo。
3. 切换到 Signing & Capabilities 标签。
4. Team:选择您自己的开发者账号。
5. Bundle Identifier:改为您自己的标识。
6.3 选择设备并运行
1. 在 Xcode 顶部工具栏选择目标设备。
2. 单击 ▶️ 运行按钮(或按
Cmd + R)。6.4 常见问题
问题 | 解决方法 |
"Bundle Identifier cannot be registered" | 修改 Bundle Identifier 为您自己的唯一标识 |
"No signing certificate" | 在 Xcode > Preferences > Accounts 中登录 Apple ID |
运行后黑屏无画面 | 确认 Config.swift 中的凭证填写正确,且网络可用 |
编译报 framework not found | 确认 Frameworks/VirtualmanStreamSDK.xcframework 存在,且在 Target 中设置为 Embed & Sign |