更新记录

1.0.1(2026-07-13)

  • 完善插件市场 package.json 元数据与平台声明
  • 开启视频时优先使用后置摄像头(Android CameraId.CAMERA_ID_BACK / iOS .back
  • 补充 API 文档、集成指南、插件市场上传说明
  • 新增打包脚本 npm run pack:volcengine-rtc

平台兼容性

uni-app(4.0)

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

火山引擎 RTC — uni-app UTS 原生插件

封装 火山引擎 veRTC Android / iOS 原生 SDK 3.58+,供 uni-app(Vue3)App 端语音/视频通话使用。

平台 本插件 说明
Android App UTS + Kotlin,RTCVideo / RTCRoom
iOS App UTS + Swift,ByteRTCVideo / ByteRTCRoom
微信小程序 请用 volcengine-rtc-mp 或 web-view 加载 H5
H5 / 鸿蒙 请用 @volcengine/rtc Web SDK

功能

  • 创建引擎、加入/离开房间
  • 麦克风采集、静音
  • 摄像头开关(默认后置)
  • 房间二进制消息(AIGC 字幕 TLV 等)
  • 事件:onJoinSuccess / onJoinFailed / onRoomBinaryMessage / onUserPublishStream

快速开始

1. 安装插件

方式 A — 插件市场(推荐)

  1. DCloud 插件市场 搜索 volcengine-rtc 并导入项目
  2. 或使用本仓库打包:npm run pack:volcengine-rtc,上传 packages/volcengine-rtc-uni-plugin/volcengine-rtc.zip

方式 B — 本地 uni_modules

volcengine-rtc 目录复制到项目的 src/uni_modules/(或 uni_modules/)。

2. 火山控制台

  1. 登录 火山 RTC 控制台 创建应用,获取 AppId
  2. 服务端签发 Token(roomId + userId),参见 Token 鉴权

3. 权限

Android(插件 utssdk/app-android/config.json 已声明,云打包时在 manifest 勾选):

  • RECORD_AUDIO(必需)
  • CAMERA(视频可选)
  • INTERNET

iOSutssdk/app-ios/config.json 已配置隐私描述):

  • NSMicrophoneUsageDescription
  • NSCameraUsageDescription(视频可选)

4. 自定义基座 / 云打包

UTS 原生插件需 制作自定义调试基座云打包 后真机测试,标准基座不包含本插件。

5. 代码示例

import {
  setVolcRtcEventHandler,
  createVolcRtcEngine,
  joinVolcRtcRoom,
  startVolcRtcAudioCapture,
  setVolcRtcAudioMuted,
  setVolcRtcVideoEnabled,
  leaveVolcRtcRoom,
  type VolcRtcEvent,
} from "@/uni_modules/volcengine-rtc";

const APP_ID = "你的 AppId";
const ROOM_ID = "room001";
const USER_ID = "user001";
const TOKEN = "服务端签发的 Token";

setVolcRtcEventHandler((event: VolcRtcEvent) => {
  switch (event.type) {
    case "onJoinSuccess":
      startVolcRtcAudioCapture();
      break;
    case "onJoinFailed":
    case "onError":
      console.error(event.message, event.errorCode);
      break;
    case "onRoomBinaryMessage":
      // event.binaryMessageBase64 — AIGC 房间字幕等
      break;
    case "onUserPublishStream":
      console.log("远端发布流", event.userId);
      break;
  }
});

createVolcRtcEngine();
joinVolcRtcRoom(
  APP_ID,
  ROOM_ID,
  USER_ID,
  TOKEN,
  JSON.stringify({ call_scene: "RTC-AIGC", user_id: USER_ID }),
  true,  // autoSubscribeAudio
  false, // autoSubscribeVideo
);

// 挂断
// leaveVolcRtcRoom();

重要:须先调用 setVolcRtcEventHandler,再 createVolcRtcEngine / joinVolcRtcRoom。回调不可放在 options 对象里跨 UTS 桥传递。

API 一览

方法 说明
setVolcRtcEventHandler(handler) 注册事件回调(null 清除)
createVolcRtcEngine() 初始化桥接(进房前调用)
joinVolcRtcRoom(appId, roomId, userId, token, extraInfo?, autoSubscribeAudio?, autoSubscribeVideo?) 创建引擎并进房
leaveVolcRtcRoom() 离房并销毁引擎
startVolcRtcAudioCapture() 开始麦克风采集
stopVolcRtcAudioCapture() 停止麦克风
setVolcRtcAudioMuted(muted) 静音(true=停止采集)
setVolcRtcVideoEnabled(enabled) 开关摄像头(开启时默认后置)

TypeScript 类型见根目录 index.d.ts,UTS 接口见 utssdk/interface.uts

事件类型

type 说明
onJoinSuccess 进房成功
onJoinFailed 进房失败,message / errorCode
onLeaveRoom 已离房
onError SDK 错误
onUserPublishStream 远端发布音频/视频,userId
onRoomBinaryMessage 房间二进制消息,binaryMessageBase64
onTokenWillExpire Token 即将过期,需 updateToken(业务层扩展)

目录结构

volcengine-rtc/
├── package.json          # 插件市场元数据
├── index.d.ts            # TS 声明
├── README.md
├── CHANGELOG.md
├── docs/
│   ├── API.md
│   ├── INTEGRATION.md
│   └── MARKETPLACE_UPLOAD.md
└── utssdk/
    ├── interface.uts
    ├── app-android/
    │   ├── config.json       # Maven 依赖 VolcEngineRTC 3.58.1
    │   ├── index.uts
    │   └── VolcRtcNative.kt
    └── app-ios/
        ├── config.json       # VolcEngineRTC Pod
        ├── index.uts
        └── VolcRtcNative.swift

SDK 版本

当前内置依赖版本:3.58.1.55100

升级时在 utssdk/app-android/config.jsonutssdk/app-ios/config.json 中修改,并对照 Android API 迁移说明 调整 Kotlin/Swift。

相关文档

许可证与声明

  • 本插件为火山引擎 RTC SDK 的 uni-app 封装层,不包含火山官方 SDK 源码
  • Android 通过 Maven 拉取 com.volcengine:VolcEngineRTC
  • iOS 通过 CocoaPods / SPM 引入 VolcEngineRTC
  • 使用 RTC 服务须遵守火山引擎服务协议,并自行完成 AppId、Token 与服务端鉴权

更新日志

CHANGELOG.md

隐私、权限声明

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

麦克风 RECORD_AUDIO;视频可选 CAMERA;网络 INTERNET

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

插件不采集用户数据;音视频数据经火山引擎 RTC SDK 传输,需开发者自行配置 AppId 与 Token 服务端签发

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

暂无用户评论。