1. 接入 SDK
在 Android 的 app 目录下新建 libs 文件夹,并放入
virtualman-stream-sdk-release-X.X.X.aar 和 LiteAVSDK_TRTC_X.X.X.aar,在 build.gradle 配置中增加如下依赖:android {packagingOptions {exclude 'META-INF/DEPENDENCIES'exclude 'META-INF/NOTICE'exclude 'META-INF/LICENSE'exclude 'META-INF/LICENSE.txt'exclude 'META-INF/NOTICE.txt'}}dependencies {implementation 'com.google.code.gson:gson:2.9.0'implementation 'com.squareup.okhttp3:okhttp:4.10.0'implementation files('libs/LiteAVSDK_TRTC_x.x.x.aar')implementation files('libs/virtualman-stream-sdk-release-x.x.x.aar')}
2. 权限说明
以下权限已在 SDK 内部
AndroidManifest.xml 中声明,集成 AAR 后会自动 merge 到您的项目,无需手动添加。权限 | 来源 | 说明 |
INTERNET | 数智人 SDK | HTTP 建流请求 + WebSocket 连接 |
ACCESS_NETWORK_STATE | TRTC SDK | 网络状态监测 |
ACCESS_WIFI_STATE | TRTC SDK | Wi-Fi 网络信息 |
MODIFY_AUDIO_SETTINGS | TRTC SDK | 音频路由控制 |
BLUETOOTH | TRTC SDK | 蓝牙耳机支持 |
此外,Demo 中包含语音驱动功能,因此额外申请了
RECORD_AUDIO 运行时权限。3. 初始化及销毁
在代码中创建
Virtualman 并添加到布局:val mVirtualman = Virtualman(this)containerLayout.addView(mVirtualman, FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT,FrameLayout.LayoutParams.MATCH_PARENT))
调用
init 进行建流初始化:val params = VirtualmanParams()params.appkey = "xxx"params.accesstoken = "xxx"// 方式一:项目建流params.virtualmanProjectParams = VirtualmanProjectParams().apply {virtualmanProjectId = "xxx"}// 方式二:资产建流params.assetVirtualmanParams = AssetVirtualmanParams().apply {assetVirtualmanKey = "xxx"}mVirtualman.init(params, { result ->Log.i(TAG, "建流结果: $result")})
在建流成功后,按需调用
sendText 发送文本:mVirtualman.sendText(SendTextParams(text = "你好"))
在
onDestroy 中关闭数智人流,否则会占用后台资源:mVirtualman.close()
4. 运行 Demo
在
src/main/java/com/tencent/virtualman_demo_app/Config.kt 中填入您的数智人项目凭证:object Config {// 数智人 AppKeyconst val APP_KEY = "xxx"// 数智人 AccessTokenconst val ACCESS_TOKEN = "xxx"// 建流方式1:AssetVirtualmanconst val ASSET_VIRTUALMAN_KEY = "xxx"// 建流方式2:VirtualmanProjectconst val VIRTUALMAN_PROJECT_ID = "xxx"}