更新记录

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>

注意事项

  1. viewId 必须与 startLocalPreview / startRemoteView 传入的 id 完全一致。
  2. defineNativeEmbed 标签名 trtcvideoview 须小写。
  3. 麦克风/摄像头权限建议通过 harmony-permissions 插件动态申请后再调用 TRTC 接口。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

麦克风、摄像头、网络

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。