更新记录

1.2.1(2026-08-24)

更新了使用说明

1.2.0(2026-08-24)

更新了安卓、IOS、小程序支持

更新日志


平台兼容性

uni-app(4.62)

Vue2 Vue3 Vue3插件版本 Chrome Safari app-vue app-vue插件版本 app-nvue app-nvue插件版本 Android Android插件版本 iOS iOS插件版本 鸿蒙 鸿蒙插件版本
- 1.2.1 - - 1.2.1 1.2.1 5.0 1.2.1 12 1.2.1 6.0.2 1.2.1
微信小程序 微信小程序插件版本 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
3.8.0 1.2.1 × × × × - - × - - - -

uni-app x(5.24)

Chrome Safari Android Android插件版本 iOS iOS插件版本 鸿蒙 鸿蒙插件版本 微信小程序 微信小程序插件版本
- - 5.0 1.2.1 12 1.2.1 6.0.2 1.2.1 3.8.0 1.2.1

wei-trtc 插件使用说明

跨平台 TRTC 实时音视频 UTS 插件,封装腾讯官方 LiteAVSDK,提供直播推流、拉流观看、连麦互动等能力。支持鸿蒙 / 安卓 / iOS / 微信小程序四端。

一、环境要求

项目 要求
HBuilderX 4.62 及以上(<embed> 原生组件嵌入能力要求)
uni-app Vue3 项目(鸿蒙端仅支持 vue3,不支持 vue2)
运行平台 鸿蒙(APP-HARMONY)、安卓(APP-ANDROID)、iOS(APP-IOS)、微信小程序(MP-WEIXIN)
最低系统版本 安卓 Android 5.0+;iOS 12.0+;鸿蒙 HarmonyOS 6.0.2+;微信小程序基础库 3.8.0+
调试设备 鸿蒙 / 安卓 / iOS 均需真机(TRTC 不支持模拟器)
页面类型 鸿蒙端用 .vue 页面;安卓/iOS 端用 .nvue 页面(视频组件 <wei-trtc-video-view> 为 UTS 兼容组件,需在 nvue 中使用)
腾讯云账号 需在腾讯云实时音视频控制台创建应用,获取 sdkAppId 与密钥

各平台实现方式:

平台 实现 视频渲染
鸿蒙(APP-HARMONY) UTS 插件(函数式 API) <embed tag="trtcvideoview" :options="{ viewid: 'xxx' }">
安卓(APP-ANDROID) UTS 插件(函数式 API,封装 LiteAVSDK_Professional) <wei-trtc-video-view viewid="xxx">
iOS(APP-IOS) UTS 插件(函数式 API,封装 TXLiteAVSDK_Professional) <wei-trtc-video-view viewid="xxx">
微信小程序(MP-WEIXIN) common/trtc-wx.js(腾讯官方小程序 SDK) uni-app 内置 <live-pusher> / <live-player>

App 三端(鸿蒙/安卓/iOS)函数 API 完全一致,业务代码一份即可,仅视频渲染组件标签不同;小程序端因平台机制不同,使用 live-pusher/live-player 组件 + trtc-wx.js(见「小程序使用」章节)。

鸿蒙真机运行配置(必做)

首次在鸿蒙真机运行前,需完成以下两项配置:

  1. 包名(bundleName):在项目 manifest.jsonapp-harmony.distribute.bundleName 中填写你自己的应用包名(形如 com.xxx.yyy,需全局唯一,勿直接使用示例工程的 com.wei.trtcsample)。
  2. 证书签名:首次运行到鸿蒙真机时,HBuilderX 会提示配置调试证书——按提示在 DevEco Studio 中生成调试签名证书(.p7b / .cer / .p12),或在 HBuilderX「运行 → 运行到手机或模拟器」的鸿蒙运行设置中完成证书配置后自动写入 manifest.json

正式发布时,还需在 AppGallery Connect 中创建应用、配置发布证书,并以正式包名 + 证书打包。

二、系统权限

鸿蒙端

插件已在 utssdk/app-harmony/module.json5 中声明以下鸿蒙权限,编译时自动合入应用,无需使用者额外配置:

权限名称 用途
ohos.permission.CAMERA 摄像头,直播时采集视频画面
ohos.permission.MICROPHONE 麦克风,直播时采集声音
ohos.permission.INTERNET 网络访问,音视频数据传输
ohos.permission.MODIFY_AUDIO_SETTINGS 修改音频设置
ohos.permission.GET_NETWORK_INFO 获取网络状态
ohos.permission.GET_WIFI_INFO 获取 WLAN 信息

安卓端

插件已在 utssdk/app-android/AndroidManifest.xml 中声明以下安卓权限,云打包时自动合入应用,无需使用者额外配置:

权限名称 用途
android.permission.CAMERA 摄像头,直播时采集视频画面
android.permission.RECORD_AUDIO 麦克风,直播时采集声音
android.permission.INTERNET 网络访问,音视频数据传输
android.permission.MODIFY_AUDIO_SETTINGS 修改音频设置
android.permission.ACCESS_NETWORK_STATE 获取网络状态
android.permission.ACCESS_WIFI_STATE 获取 WLAN 信息

iOS 端

iOS 端摄像头/麦克风权限由系统在首次调用时自动弹出授权,无需额外声明。如需自定义隐私描述文案,可在项目 manifest.jsonapp-plus.ios.privacyDescription 中配置 NSCameraUsageDescription(摄像头)与 NSMicrophoneUsageDescription(麦克风)。

注意:摄像头、麦克风为敏感权限,除上述静态声明外,App 端(鸿蒙/安卓/iOS)运行时仍需调用 requestTrtcPermissions 动态申请,否则无法采集音视频。

三、导入插件

方式一:插件市场导入(推荐)

HBuilderX 中右键项目 uni_modules 目录 → 从插件市场导入 → 搜索 wei-trtc

方式二:手动导入

将插件目录复制到项目的 uni_modules/wei-trtc 下即可,无需额外配置。

安卓端自定义基座(必做)

安卓端插件依赖三方库 com.tencent.liteav:LiteAVSDK_Professional(maven),标准基座不包含该依赖。运行到安卓真机时如提示:

uni_module [wei-trtc] (Android) 存在三方依赖或资源引用,请到 HBuilderX【设置-运行配置】配置运行环境或者提交云端打自定义基座。

需按以下任一方式处理(详见官网 Android UTS 扩展开发):

  • 方式一(推荐):云端打自定义基座 — HBuilderX「运行 → 运行到手机或模拟器 → 制作自定义调试基座」,云端打包时自动拉取 maven 依赖;下载并安装自定义基座后,再运行到该设备。
  • 方式二:本地 Gradle 环境 — 「设置 → 运行配置」中配置 Gradle(≥7.5 且 <9.0)、Gradle JDK(JDK 17)、Android SDK(build-tools ≥30.0.0、platforms ≥ android-30);首次运行会自动安装「uts 开发扩展 - Android」插件,之后可本地直接真机运行。

四、获取 userSig(云函数 / 自有后端 二选一)

进房签名 userSig 需要用腾讯云 secretKey 计算。若把密钥打包在客户端,容易被反编译破解导致流量被盗用,因此密钥必须放在服务端。插件不强制依赖 uniCloud,以下两种方式任选其一:

密钥与费用归属(务必理解):

  • SDKAppId / SecretKey 必须由每个使用者填写自己的,在腾讯云实时音视频控制台用各自账号创建应用获取
  • TRTC 按用量计费(音视频时长/分辨率/人数),费用绑定在 SDKAppId 对应的腾讯云账号上。插件不内置任何作者的密钥,每位使用者用自己账号的密钥,费用各自承担,互不扣费、互不串数据

方式一:使用 uniCloud 云函数(推荐,最省事)

云函数路径: uni_modules/wei-trtc/uniCloud/cloudfunctions/wei-trtc-usersig/index.js

部署步骤:

  1. 用你自己的腾讯云账号在实时音视频控制台创建应用,记下 SDKAppId 和密钥
  2. 在 HBuilderX 中为项目关联 uniCloud 服务空间(阿里云或腾讯云均可)
  3. 右键 uniCloud/cloudfunctions/wei-trtc-usersig上传部署
  4. 右键该云函数 → 配置云函数环境变量(HBuilderX 5.08+,或登录 uniCloud 控制台在「云函数/云对象」里配置),新增两个变量:
    • TRTC_SDKAPPID = 你的 SDKAppId(纯数字)
    • TRTC_SECRETKEY = 你的密钥
  5. 客户端调用(返回 { code: 0, sdkAppId, userId, userSig, expire }):
// #ifdef APP-HARMONY
uniCloud.callFunction({
    name: 'wei-trtc-usersig',
    data: { userId: 'user_001' }
}).then((res) => {
    const r = res.result || {};
    if (r.code === 0 && r.userSig) {
        // 用 r.sdkAppId / r.userSig 调用 enterRoom
    }
});
// #endif

加密说明:插件已在 package.jsonuni_modules.encrypt 中声明该云函数加密,使用者无法查看云函数源码;但密钥通过环境变量配置、与源码分离,因此加密不影响每个使用者填自己的密钥。

方式二:自有后端生成(不依赖 uniCloud)

如果你的项目不用 uniCloud,userSig 只是 enterRoom 的一个入参,从哪里获取完全由你决定——用自己的后端服务器计算即可。

可选清理: 删除插件目录 uni_modules/wei-trtc/uniCloud/,并删掉 package.jsonuni_modules.encrypt 那一项(保持整洁,不影响插件功能)。

后端实现: 任意语言(Node/Java/PHP/Python/Go/.NET)腾讯云都提供了官方 userSig 生成示例,参考:UserSig 服务端生成方案

前端调用: 调你自己的后端接口拿到 userSig 后直接进房:

// #ifdef APP-HARMONY
// 你的业务后端接口(任意语言实现),返回 { sdkAppId, userSig }
const res = await myBackend.getUserSig(this.userId);
enterRoom({
    sdkAppId: Number(res.sdkAppId),
    userId: this.userId,
    userSig: res.userSig,
    roomId: 868,
    role: 20,
    scene: 'live'
});
// #endif

五、快速上手

以下为完整接入流程代码(可直接复制到鸿蒙端 .vue 页面):

<template>
    <view>
        <!-- 视频渲染组件:viewid 必须与 startLocalPreview / startRemoteView 传入的 viewId 完全一致 -->
        <embed tag="trtcvideoview" :options="{ viewid: 'trtcMainView' }"
            style="width: 100vw; height: 100vh;"></embed>
    </view>
</template>

<script>
    // 仅在鸿蒙平台加载插件,其他平台走空实现保证编译通过
    // #ifdef APP-HARMONY
    import {
        createTrtcInstance,
        destroyTrtcInstance,
        requestTrtcPermissions,
        enterRoom,
        exitRoom,
        startLocalPreview,
        stopLocalPreview,
        startLocalAudio,
        stopLocalAudio,
        switchCamera,
        muteLocalAudio,
        switchRole,
        setBeautyStyle,
        startRemoteView,
        stopRemoteView,
        onTrtcEvent,
        offTrtcEvent,
        TRTC_ROLE_ANCHOR,      // 20 主播
        TRTC_AUDIO_QUALITY_DEFAULT,
        TRTC_STREAM_TYPE_BIG   // 0 主流(摄像头)
    } from '@/uni_modules/wei-trtc';
    // #endif

    // scene 字符串常量在 JS 层本地定义(UTS 插件不导出字符串常量,避免引号丢失)
    const TRTC_SCENE_LIVE = 'live';
    const TRTC_SCENE_VIDEOCALL = 'videocall';

    export default {
        data() {
            return {
                isFront: true // 前置摄像头
            }
        },
        onReady() {
            this.initTrtc();
        },
        onUnload() {
            // 页面卸载时务必退出房间并销毁实例,释放原生资源
            // #ifdef APP-HARMONY
            stopLocalPreview();
            stopLocalAudio();
            exitRoom();
            destroyTrtcInstance();
            // #endif
        },
        methods: {
            initTrtc() {
                // #ifdef APP-HARMONY
                // 1. 动态申请麦克风 + 摄像头权限(推流前必须申请)
                requestTrtcPermissions((granted) => {
                    if (!granted) {
                        uni.showToast({ title: '需要摄像头和麦克风权限', icon: 'none' });
                        return;
                    }
                    // 2. 创建 TRTC 实例(幂等,可重复调用)
                    createTrtcInstance();
                    // 3. 订阅事件(进房结果等均通过事件回调)
                    this.bindEvents();
                    // 4. 进房(userSig 请由您的业务后端下发)
                    enterRoom({
                        sdkAppId: 1400000000,          // 腾讯云 sdkAppId
                        userId: 'user_001',             // 用户唯一标识
                        userSig: 'xxx',                 // 登录签名,由服务端下发
                        roomId: 868,                    // 房间号(数字)
                        role: TRTC_ROLE_ANCHOR,         // 20 主播可推流,21 观众仅观看
                        scene: TRTC_SCENE_LIVE          // live 直播 / videocall 视频通话
                    });
                });
                // #endif
            },
            bindEvents() {
                // #ifdef APP-HARMONY
                // 进房结果:result > 0 成功(耗时ms),result < 0 失败(错误码)
                onTrtcEvent('onEnterRoom', (res) => {
                    if (res['result'] > 0) {
                        // 主播:进房成功后开启本地预览 + 音频上行
                        // viewid 'trtcMainView' 与模板中 embed 的 viewid 一致
                        startLocalPreview(this.isFront, 'trtcMainView');
                        startLocalAudio(TRTC_AUDIO_QUALITY_DEFAULT);
                    }
                });
                // 远端用户开启摄像头:订阅渲染其画面
                onTrtcEvent('onUserVideoAvailable', (res) => {
                    if (res['available']) {
                        // 观众看主播:订阅到主画面;streamType 0=主流(摄像头)
                        startRemoteView(res['userId'], TRTC_STREAM_TYPE_BIG, 'trtcMainView');
                    } else {
                        stopRemoteView(res['userId'], TRTC_STREAM_TYPE_BIG);
                    }
                });
                // 错误回调
                onTrtcEvent('onError', (res) => {
                    console.error('TRTC 错误', res['errCode'], res['errMsg']);
                });
                // #endif
            }
        }
    }
</script>

六、视频渲染说明

各端视频渲染组件不同(App 三端函数 API 完全一致,仅渲染组件标签不同):

  • 鸿蒙(APP-HARMONY)<embed tag="trtcvideoview" :options="{ viewid: 'xxx' }">
  • 安卓 / iOS(APP-ANDROID / APP-IOS)<wei-trtc-video-view viewid="xxx">
  • 微信小程序(MP-WEIXIN):uni-app 内置 <live-pusher> / <live-player>

注意:

  • 每个渲染位通过 viewid(鸿蒙 embed 为 options.viewid)区分,必须与 startLocalPreview(frontCamera, viewId) / startRemoteView(userId, streamType, viewId) 传入的 viewId 完全一致,否则画面不显示
  • 渲染组件需显式设置宽高(如 style="width:100vw;height:100vh"),否则可能无法显示
  • <embed>tag<wei-trtc-video-view> 标签名必须全小写

七、API 参考

实例与权限

API 说明
createTrtcInstance(): boolean 创建 TRTC 单例并挂载事件回调(幂等,重复调用直接返回)
destroyTrtcInstance() 销毁实例、清空事件订阅,释放原生资源(建议在收到 onExitRoom 后调用)
requestTrtcPermissions(callback) 动态申请麦克风 + 摄像头权限,回调参数 granted: boolean推流/预览前必须调用

房间

API 说明
enterRoom(params) 进房。参数见下方 TrtcEnterRoomParams;结果通过 onEnterRoom 事件回调(不通过返回值)
exitRoom() 退房,结果通过 onExitRoom 回调(reason:0 正常退出 / 1 被踢 / 2 房间解散)
switchRole(role) 切换角色:TRTC_ROLE_ANCHOR(20) 主播可推流 / TRTC_ROLE_AUDIENCE(21) 观众仅观看。观众连麦时先切 20 再开本地推流

TrtcEnterRoomParams 参数:

参数 类型 必填 说明
sdkAppId number 腾讯云控制台的 SDKAppId
userId string 用户唯一标识
userSig string 登录签名(正式环境必须由服务端下发
roomId number 房间号(数字)
role number 默认 20 主播
scene string 'live' 直播(默认)/ 'videocall' 视频通话
userDefineRecordId string 自定义录制 ID

本地音视频(推流)

API 说明
startLocalPreview(frontCamera, viewId) 开启本地摄像头预览。frontCamera 是否前置摄像头;viewId 对应 embed 的 viewid
stopLocalPreview() 关闭本地预览
startLocalAudio(quality) 开启本地音频采集与上行。quality:1 默认 / 2 语音 / 3 音乐
stopLocalAudio() 关闭本地音频
switchCamera(frontCamera, viewId) 切换前后摄像头(SDK 设备管理器专用接口,无竞态)
muteLocalAudio(mute) 静音(true)/ 取消静音(false)本地麦克风
muteLocalVideo(mute) 暂停/恢复视频上行(画面黑屏,不关摄像头)

美颜与镜像

API 说明
setBeautyStyle(style, beauty, white, ruddiness) 美颜。style:0 光滑 / 1 自然 / 2 优图;beauty/white/ruddiness 取值 0-9
setVideoEncoderMirror(mirror) 编码端镜像(观众看到的效果)
setLocalRenderMirror(mirror) 本地预览镜像(仅主播自己看到,编码输出不受影响)

远端视频(拉流)

API 说明
startRemoteView(userId, streamType, viewId) 订阅并渲染远端视频。streamType:0 主流(摄像头)/ 1 辅流(屏幕共享);主播间连麦用 0
stopRemoteView(userId, streamType) 停止订阅指定远端视频
stopAllRemoteView() 停止订阅所有远端视频

自定义消息

API 说明
sendCustomCmdMsg(cmdId, msg, reliable, ordered): boolean 发送文本消息给房间内所有用户。cmdId 取值 1-10;插件内部已处理 UTF-8 编码,直接传字符串即可

事件订阅

API 说明
onTrtcEvent(name, callback) 订阅事件,回调参数为 UTSJSONObject
offTrtcEvent(name) 取消订阅指定事件的所有回调

支持的事件列表:

事件 回调字段 说明
onError errCode, errMsg 错误
onWarning warningCode, warningMsg 警告
onEnterRoom result 进房结果(>0 成功耗时ms,<0 错误码)
onExitRoom reason 退房(0 正常 / 1 被踢 / 2 房间解散)
onSwitchRole errCode, errMsg 切换角色结果
onRemoteUserEnterRoom userId 远端用户进房
onRemoteUserLeaveRoom userId, reason 远端用户退房
onUserVideoAvailable userId, available 远端主画面(摄像头)开关
onUserSubStreamAvailable userId, available 远端辅流(屏幕共享)开关
onUserAudioAvailable userId, available 远端音频开关
onFirstVideoFrame userId, streamType, width, height 首帧渲染
onSendFirstLocalVideoFrame - 本地首个视频帧已发送
onSendFirstLocalAudioFrame - 本地首个音频帧已发送
onCameraDidReady - 摄像头就绪
onMicDidReady - 麦克风就绪
onConnectionLost - 连接断开
onTryToReconnect - 正在重连
onConnectionRecovery - 连接恢复

常量

常量 说明
TRTC_ROLE_ANCHOR / TRTC_ROLE_AUDIENCE 20 / 21 主播 / 观众
TRTC_SCENE_LIVE / TRTC_SCENE_VIDEOCALL 'live' / 'videocall' 直播 / 视频通话(JS 层本地定义,非插件导出)
TRTC_STREAM_TYPE_BIG / TRTC_STREAM_TYPE_SUB 0 / 1 主流(摄像头)/ 辅流(屏幕共享)
TRTC_AUDIO_QUALITY_DEFAULT / SPEECH / MUSIC 1 / 2 / 3 默认 / 语音 / 音乐音质

八、典型场景流程

主播推流: requestTrtcPermissionscreateTrtcInstanceonTrtcEvent 绑事件 → enterRoom(role=20) → 收到 onEnterRoom(result>0)startLocalPreview + startLocalAudio

观众拉流观看: createTrtcInstance → 绑事件 → enterRoom(role=21) → 收到 onUserVideoAvailable(available=true)startRemoteView(userId, 0, viewId)

观众连麦(上麦): switchRole(20)startLocalPreview(frontCamera, 小窗viewId)startLocalAudio;下麦时反向操作后 switchRole(21)

退出房间: stopLocalPreviewstopLocalAudioexitRoom → 收到 onExitRoomoffTrtcEvent 清理订阅 → destroyTrtcInstance

九、注意事项

  1. userSig 安全:正式环境务必由服务端计算下发 userSig,切勿将密钥打包进客户端。推荐直接使用插件内置的加密云函数 wei-trtc-usersig(见「三、userSig 云端生成」),密钥保留在云端不泄露;示例工程中的本地生成方式仅用于 Demo 快速调通。参考:腾讯云 UserSig 服务端生成方案
  2. viewid 一致性embedviewidstartLocalPreview/startRemoteView 传入的 viewId 必须完全一致
  3. 进房结果异步enterRoom 无返回值,成功/失败均通过 onEnterRoom 事件回调判断
  4. 资源释放:页面卸载(onUnload)时务必执行退房 + destroyTrtcInstance(),否则摄像头/麦克风被占用导致下次进入失败
  5. 模拟器不支持:TRTC SDK(鸿蒙/安卓/iOS)均不支持模拟器,请始终使用真机调试
  6. 权限:插件已声明各端所需权限(摄像头、麦克风、网络等),但 App 端运行时仍需调用 requestTrtcPermissions 动态申请麦克风与摄像头权限
  7. 条件编译:各端实现不同(App 走 UTS 函数 API、小程序走 live-pusher 组件),页面调用处建议用 #ifdef APP-HARMONY / APP-ANDROID / APP-IOS / MP-WEIXIN 条件编译区分

十、小程序使用(微信)

前置:小程序音视频资质申请(必做)

微信小程序的 live-pusher / live-player 组件属特殊能力,出于合规要求并未对所有小程序开放,使用前必须完成以下步骤:

  1. 非个人主体认证:小程序必须是企业/组织/政府等非个人主体认证的账号,个人小程序无法使用 live-pusher / live-player
  2. 服务类目审核:小程序所选「服务类目」必须在微信开放的范围内。支持音视频直播/通话的主要类目包括:社交 - 直播教育 - 在线视频课程医疗 - 互联网医院IT科技 - 多方通信工具 - 视频客服政府主体账号房地产服务 - 房地产营销 等(完整类目及资质要求以微信官方「服务类目说明」为准)。在「设置 → 基本设置 → 服务类目」中选择符合实际业务场景的类目并提交审核。
  3. 接口权限开通:类目审核通过后,在小程序管理后台「开发 → 开发管理 → 接口设置」中自助开通「实时播放音视频流」与「实时录制音视频流」两个接口权限。
  4. 服务器域名配置:将 TRTC 服务商相关域名添加到小程序后台「开发 → 开发设置 → 服务器域名」的 request 合法域名(如需还需配置 socket 合法域名),否则真机上拉流会黑屏。

参考:微信 live-player 组件文档腾讯云小程序类目资质要求

微信小程序端 TRTC 与 App 端机制不同,使用 uni-app 内置的 <live-pusher>(推流)和 <live-player>(拉流)组件,配合插件内置的腾讯官方小程序 SDK(common/trtc-wx.js)管理进房与推拉流。

引入 SDK:

import * as TRTC from '@/uni_modules/wei-trtc/common/trtc-wx.js';

主播推流(模板 + 逻辑):

<live-pusher
  :url="pusher.url"
  mode="RTC"
  :enable-mic="true"
  :enable-camera="true"
  @statechange="onPushStateChange"
  style="width: 100vw; height: 100vh;" />
const trtc = new TRTC();
const pusher = trtc.createPusher();
// 进房
const { sdkAppId, userSig } = await getUserSigFromBackend(); // userSig 由服务端下发
const enterRes = await trtc.enterRoom({
  sdkAppID: sdkAppId,
  userID: this.userId,
  userSig: userSig,
  roomID: this.roomId,
  scene: 'live',
  enableMic: true,
  enableCamera: true
});
this.pusher = enterRes.pusher;
trtc.getPusherInstance().start(); // 开始推流

观众拉流:

<live-player
  v-for="player in playerList"
  :src="player.url"
  mode="RTC"
  style="width: 100vw; height: 100vh;" />
// 监听远端视频流,创建 player 实例
trtc.on(trtc.EVENT.REMOTE_VIDEO_ADD, (event) => {
  const player = trtc.createPlayer({ streamUrl: event.stream.streamUrl });
  this.playerList.push(player);
});

说明:小程序端 userSig 同样建议由服务端下发(可复用插件内置的 uniCloud 云函数 wei-trtc-usersig,小程序端也能调用 uniCloud.callFunction)。trtc-wx.js 为腾讯官方小程序 TRTC SDK,事件模型与 App 端不同,详见腾讯官方文档。

十一、完整示例

配套示例工程见 WEI-TRTCCloud-sample:

  • 入口页 pages/index/index.vue:APP/小程序/鸿蒙平台展示「直播(主播推流)/ 直播(观众拉流)」入口
  • 演示页 pages/harmonylive/harmonylive.vue:覆盖进房/退房、推流、拉流、连麦、切换摄像头、静音、美颜、自定义消息、事件日志全部能力,并提供「云函数 / 本地生成」两种 userSig 获取方式切换
  • 云端 userSig 云函数:uni_modules/wei-trtc/uniCloud/cloudfunctions/wei-trtc-usersig/
  • 测试 userSig 本地生成工具:js_sdk/trtc/gen-test-usersig.js(密钥配置在 common/app.js,仅供本地快速调通)

两台鸿蒙真机分别以主播/观众进入同一房间号即可联调测试。

隐私、权限声明

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

ohos.permission.CAMERA(摄像头,直播时采集视频画面)、ohos.permission.MICROPHONE(麦克风,直播时采集声音)、ohos.permission.INTERNET(网络,音视频数据传输)、ohos.permission.MODIFY_AUDIO_SETTINGS(修改音频设置)、ohos.permission.GET_NETWORK_INFO(获取网络状态)、ohos.permission.GET_WIFI_INFO(获取WLAN信息)

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

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

暂无用户评论。