更新记录
1.0.2(2026-07-07)
下载此版本
- 修复 destroy 时未释放摄像头导致快速重进本地预览黑屏
1.0.0(2026-07-07)
下载此版本
1.0.0(2026-07-06)
- 初始版本:封装 @tencentcloud/liteavsdk_professional
- 支持 defineNativeEmbed + XComponent 视频渲染
- 提供 TrtcCloud 对齐 API 与跨平台 services/trtc 入口
平台兼容性
uni-app(4.45)
| Vue2 |
Vue3 |
Chrome |
Safari |
app-vue |
app-nvue |
Android |
iOS |
鸿蒙 |
| - |
√ |
- |
- |
√ |
- |
- |
- |
√ |
| 微信小程序 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
小红书小程序 |
快应用-华为 |
快应用-联盟 |
| - |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
uni-app x(4.45)
| Chrome |
Safari |
Android |
iOS |
鸿蒙 |
微信小程序 |
| - |
- |
- |
- |
√ |
- |
trtc-harmony
鸿蒙端 TRTC 实时音视频 UTS 插件,封装 @tencentcloud/liteavsdk_professional,通过 defineNativeEmbed 嵌入 XComponent 实现视频渲染。
依赖
- HBuilderX >= 4.62(支持鸿蒙原生组件 embed)
- 鸿蒙真机(TRTC 不支持模拟器)
首次编译时 HBuilderX 会根据 utssdk/app-harmony/config.json 自动拉取 ohpm 依赖。若版本号失效,可在 腾讯云 SDK 下载页 查看最新版本并更新 config.json。
目录结构
trtc-harmony/
├── components/
│ ├── trtc-local-view/ # 本地视频 embed 组件
│ └── trtc-remote-view/ # 远端视频 embed 组件
└── utssdk/app-harmony/
├── config.json # ohpm 依赖
├── module.json5 # 权限声明
├── index.uts # TRTC API 封装
├── trtc-video-view.ets # XComponent + defineNativeEmbed
└── embed-init.uts # 注册原生组件
使用示例
<script setup>
import { ref, onMounted } from 'vue'
import { createTrtcInstance, destroyTrtcInstance, TRTCAppScene, TRTCVideoStreamType } from '@/services/trtc'
import TrtcLocalView from '@/uni_modules/trtc-harmony/components/trtc-local-view/trtc-local-view.vue'
import TrtcRemoteView from '@/uni_modules/trtc-harmony/components/trtc-remote-view/trtc-remote-view.vue'
import { requestHarmonyUserPermissions, HARMONY_PERMISSION_CAMERA, HARMONY_PERMISSION_MICROPHONE } from '@/uni_modules/harmony-permissions'
const trtc = ref(null)
const localViewId = 'trtc_local_1'
const remoteViewId = 'trtc_remote_1'
onMounted(async () => {
// #ifdef APP-HARMONY
await new Promise<void>((resolve) => {
requestHarmonyUserPermissions([HARMONY_PERMISSION_CAMERA, HARMONY_PERMISSION_MICROPHONE], (ok) => resolve())
})
// #endif
trtc.value = createTrtcInstance()
trtc.value.on('onEnterRoom', (result) => {
if (result > 0) {
trtc.value.startLocalPreview(true, localViewId)
trtc.value.startLocalAudio()
}
})
trtc.value.enterRoom({ sdkAppId, userId, userSig, roomId }, TRTCAppScene.TRTCAppSceneVideoCall)
})
onUnload(() => {
trtc.value?.exitRoom()
destroyTrtcInstance()
})
</script>
<template>
<!-- #ifdef APP-HARMONY -->
<TrtcLocalView :view-id="localViewId" />
<TrtcRemoteView :view-id="remoteViewId" :user-id="remoteUserId" />
<!-- #endif -->
</template>
注意事项
viewId 必须与 startLocalPreview / startRemoteView 传入的 id 完全一致。
defineNativeEmbed 标签名 trtcvideoview 须小写。
- 麦克风/摄像头权限建议通过
harmony-permissions 插件动态申请后再调用 TRTC 接口。