rtc 实时音视频通信房间
解释:实时音视频 RTC 房间,内部由多个 rtc-room-item 组件,基础库 v3.200.1 起支持,默认为 同层渲染。rtc-room 组件还提供丰富的 api 来控制登录、退出房间,发布 / 取消发布本地流,订阅 / 取消订阅远端流,控制远端流音视频等,详见 swan.createRtcRomContext 。只针对以下一级类目及其二级类目开放。需要先通过类目审核,再在小程序管理后台,“开发管理-功能管理”页面的“实时音视频通话”模块中自助开通该组件权限。
一级类目 |
快递业与邮政 |
教育 |
政务民生 |
生活 |
交通 |
房地产 |
IT科技 |
旅行 |
时政新闻 |
娱乐 |
商家自营 |
电商 |
商业服务 |
公益 |
汽车 |
健康 |
属性说明
属性名 |
类型 |
默认值 |
必填 |
说明 |
Web 态说明 |
id |
String |
|
是 |
rtc-room 组件的唯一标识符 |
|
enable-camera |
Boolean |
true |
否 |
是否开启摄像头 |
|
enable-auto-focus |
Boolean |
true |
否 |
是否开启摄像头自动对焦 |
|
enable-zoom |
Boolean |
false |
否 |
是否支持双手滑动调整摄像头聚焦 |
|
device-position |
String |
front |
否 |
设置前置还是后置摄像头,有效值:front、back |
|
enable-mic |
Boolean |
true |
否 |
是否开启麦克风 |
|
enable-agc |
Boolean |
false |
否 |
是否开启音频自动增益 |
|
enable-ans |
Boolean |
false |
否 |
是否开启音频噪声抑制 |
|
bitrate |
Number |
900 |
否 |
最大码率 |
|
video-width |
Number |
360 |
否 |
视频分辨率宽 |
|
video-height |
Number |
640 |
否 |
视频分辨率高 |
|
enable-remote-mirror |
Boolean |
false |
否 |
设置远端看到的画面的镜像效果,该属性的变化不会影响到本地画面,仅影响远端看到的画面效果。 |
|
local-mirror |
String |
auto |
否 |
设置本地摄像头预览画面的镜像效果,有效值:auto、enable、disable。 |
|
sound-mode |
String |
speaker |
否 |
设置声音输出方式,有效值:speaker、ear。 |
|
bindstatechange |
Eventhandle |
否 |
房间状态变化事件,参考下方状态码表格,detail = { code, msg, userInfo }。 |
|
|
binderror |
Eventhandle |
否 |
错误事件,参考下方错误码表格,detail = { errMsg, errCode }。 |
|
|
device-position 有效值
值 |
说明 |
front |
前置摄像头 |
back |
后置摄像头 |
local-mirror 有效值
值 |
说明 |
auto |
前置摄像头镜像,后置摄像头不镜像(系统相机的表现) |
enable |
前置摄像头和后置摄像头都镜像 |
disable |
前置摄像头和后置摄像头都不镜像 |
sound-mode 有效值
bindstatechange 房间状态变化事件
code |
msg |
userInfo |
说明 |
1001 |
LOCAL_JOIN |
{ userId, displayName } |
成功进入房间 |
1002 |
REMOTE_USER_JOIN |
{ userId, displayName } |
远端用户进入房间 |
1003 |
REMOTE_USER_LEAVE |
{ userId, displayName } |
远端用户离开房间 |
2001 |
REMOTE_STREAM_ADD |
{ userId, displayName } |
远端用户发布音视频流 |
3002 |
REMOTE_STREAM_REMOVE |
{ userId, displayName } |
远端用户取消发布音视频流 |
binderror 错误事件
errCode |
errMsg |
说明 |
10001 |
internal error |
内部错误 |
10002 |
network error |
网络请求失败 |
10003 |
user deny |
用户拒绝 |
10004 |
user not logged in |
账号失效 |
10005 |
system deny |
系统拒绝 |
20001 |
NO_SUCH_ROOM |
房间不存在 |
20001 |
USERID_ALREADY_EXIST_ERROR |
用户已存在 |
20001 |
login fail : execute fail |
执行失败 |
20001 |
login fail : init rtc sdk fail |
初始化 rtc sdk 失败 |
20001 |
login fail : so download failed |
so 下载失败 |
20001 |
login fail : so load failed |
so 加载失败 |
20001 |
login fail : error |
登陆失败 |
20001 |
login fail : timeout |
登陆超时 |
20002 |
ROOM_ALREADY_EXIST |
room 组件已经有房间在登陆 |
20003 |
DEVICE_IS_NOT_SUPPORTED |
安卓 5.0 以下的设备不支持 rtc 功能 |
30001 |
ROOM_CONNECTION_LOST |
与服务器连接丢失 |
30002 |
MEDIA_CONNECTION_LOST |
媒体通道连接丢失 |
40001 |
OPEN_CAMERA_FAIL |
相机打开失败 |
40002 |
REMOTE_ITEM_ALREADY_PLAYING |
rtc-room-item 已经被占用 |
40003 |
PUBLISH_FAIL |
本地发布流失败 |
图片示例
代码示例
<view class="wrap">
<rtc-room id="myRoom">
<rtc-room-item
type="local"
userId="{{localUserId}}"
class="local-view">
</rtc-room-item>
<rtc-room-item
type="remote"
userId="{{remoteUserId}}"
class="remote-view">
</rtc-room-item>
</rtc-room>
</view>
<view class="wrap">
<rtc-room id="myRoom">
<rtc-room-item
type="local"
userId="{{localUserId}}"
class="local-view">
</rtc-room-item>
<rtc-room-item
type="remote"
userId="{{remoteUserId}}"
class="remote-view">
</rtc-room-item>
</rtc-room>
</view>