欢迎光临
我们一直在努力

九八云百度小程序教程:rtc-room 实时音视频通话房间

  • rtc-room 实时音视频通话房间
    • 属性说明
      • device-position 有效值
      • local-mirror 有效值
      • sound-mode 有效值
      • 状态码
      • 错误码
    • 示例
      • 图片示例
      • 代码示例

    rtc-room 实时音视频通话房间

    基础库 v3.200.106 起支持,默认为同层渲染。

    解释:实时音视频 RTC 房间,内部由多个 rtc-room-item 组件。该组件还提供丰富的 API 来控制登录、退出房间,发布 / 取消发布本地流,订阅 / 取消订阅远端流,控制远端流音视频等,详见 swan.createRtcRomContext 。只针对以下一级类目及其二级类目开放,详见支持服务类目。需要先通过类目审核,再在小程序管理后台,“开发管理 -> 功能管理”页面的“实时音视频通话”模块中自助开通该组件权限,详见接入流程。
    Web 态说明:Web 态使用降级方案支持 rtc 实时音视频。设置 rtc-room 组件的相关属性和方法无效。

    支持服务类目

    一级类目
    快递业与邮政 教育 政务民生 生活 交通 房地产 IT 科技 旅行
    时政新闻 娱乐 商家自营 电商 商业服务 公益 汽车 健康

    接入流程

    1.【小程序】支持在“开发者平台 -> 开发管理 -> 功能管理 -> 实时音视频通话”开通使用。

    当该小程序类目不属于上述类目时,暂不支持开通该服务,支持服务类目见文中支持服务类目。

    2. 【小程序】符合类目要求时,点击开通后引导进入智能云平台进行登录。

    3. 注册完成后进“云资源访问授权页面”,点击授权后进行实名认证判断

    3.1 当实名认证已完成后,则跳转至小程序开发者平台,表示开通完成;

    3.2 当实名认证未完成时,则跳转至实名认证页面进行认证,按照页面指引进行认证。

    认证申请提交后等待审核结果,预计半小时左右。

    (1)审核通过后智能云短信通知,重新打开小程序开发者平台,表示开通完成。

    (2)审核未通过后智能云短信通知,重新打开小程序开发者平台,表示未审核成功,点击『立即认证』查看认证失败原因并重新认证。

    4. 在开发者平台点击『实时音视频通话』进入智能云 RTC 控制台,创建应用获取 SDKAppID ,按照操作指南进行开发。

    5. 开发完成后可在小程序平台进行 RTC 更多操作和查看

    • 查看费用:跳转到智能云平台快速查看消耗费用明细情况。
    • 关闭:快速暂停该能力使用,暂停后不再耗费费用,该能力也无法使用。
    • 开通:重新使用该能力,开通后该能力可以继续使用,随着使用开始消耗费用。

    属性说明

    属性名 类型 默认值 必填 说明 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 有效值

    说明
    speaker 扬声器
    ear 听筒

    状态码

    code msg userInfo 说明 最低版本
    1001 LOCAL_JOIN { userId, displayName } 成功进入房间 3.200.106
    1002 REMOTE_USER_JOIN { userId, displayName } 远端用户进入房间 3.200.106
    1003 REMOTE_USER_LEAVE { userId, displayName } 远端用户离开房间 3.200.106
    1004 REMOTE_USER_KICKOUT { userId } 有成员被踢出房间 3.250.12
    2001 REMOTE_STREAM_ADD { userId, displayName } 远端用户发布音视频流 3.200.106
    3002 REMOTE_STREAM_REMOVE { userId, displayName } 远端用户取消发布音视频流 3.200.106

    错误码

    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 本地发布流失败

    示例

    跳转编辑工具

    在开发者工具中打开

    在 WEB IDE 中打开

    扫码体验

    代码示例

    请使用百度APP扫码

    图片示例

    代码示例

    • SWAN
    • JS
    
     
    1. <view class="doubleroom-container">
    2. <rtc-room
    3. id="doubleRoom"
    4. class="rtc-room"
    5. enable-camera="{{enableCamera}}"
    6. enable-auto-focus="{{enableAutoFocus}}"
    7. enable-zoom="{{enableZoom}}"
    8. device-position="{{devicePosition}}"
    9. enable-mic="{{enableMic}}"
    10. enable-agc="{{enableAgc}}"
    11. enable-ans="{{enableAns}}"
    12. bitrate="{{bitrate}}"
    13. video-width="{{videoWidth}}"
    14. video-height="{{videoHeight}}"
    15. enable-remote-mirror="{{enableRemoteMirror}}"
    16. local-mirror="{{localMirror}}"
    17. sound-mode="{{soundMode}}"
    18. bindstatechange="handleStateChange"
    19. binderror="handleError">
    20. <rtc-room-item
    21. id="localView"
    22. type="local"
    23. user-id="{{localUserId}}"
    24. data-key="local"
    25. class="{{isLocalMainView ? 'main-view' : 'small-view'}}"
    26. bindtap="toggleMainView">
    27. <view class="loading" s-if="{{streamList.length === 0}}">
    28. <image
    29. src="https://b.bdstatic.com/searchbox/icms/searchbox/img/loading-icon.png"
    30. class="rotate-img">
    31. </image>
    32. <view class="loading-text">等待接听...</view>
    33. </view>
    34. <view s-if="{{!enableCamera}}" class="camera-off-container">
    35. <image
    36. class="camera-off-image"
    37. src="https://b.bdstatic.com/searchbox/icms/searchbox/img/off-camera.png">
    38. </image>
    39. <view class="camera-off-text">本地摄像头未打开</view>
    40. </view>
    41. </rtc-room-item>
    42. <rtc-room-item
    43. id="remoteView"
    44. s-if="streamList.length !== 0"
    45. type="remote"
    46. user-id="{{streamList[0].userId}}"
    47. data-key="remote"
    48. class="{{isLocalMainView ? 'small-view' : 'main-view'}}"
    49. bindtap="toggleMainView">
    50. </rtc-room-item>
    51. </rtc-room>
    52. <view class="handle-btns">
    53. <view class="btn-normal {{enableMic ? '' : 'btn-active'}}" bindtap="toggleAudio">
    54. <image
    55. class="btn-image"
    56. src="{{enableMic
    57. ? 'https://b.bdstatic.com/searchbox/icms/searchbox/img/audio-off.png'
    58. : 'https://b.bdstatic.com/searchbox/icms/searchbox/img/audio-on.png'
    59. }} ">
    60. </image>
    61. </view>
    62. <view class="btn-normal {{soundMode === 'ear' ? 'btn-active' : ''}}" bindtap="toggleSoundMode">
    63. <image
    64. class="btn-image"
    65. src="{{soundMode === 'ear'
    66. ? 'https://b.bdstatic.com/searchbox/icms/searchbox/img/speaker-off.png'
    67. : 'https://b.bdstatic.com/searchbox/icms/searchbox/img/speaker-on.png'}} ">
    68. </image>
    69. </view>
    70. <view class="btn-normal btn-hangup" bindtap="hangUp">
    71. <image
    72. class="btn-image"
    73. src="https://b.bdstatic.com/searchbox/icms/searchbox/img/hangup.png">
    74. </image>
    75. </view>
    76. <view class="btn-normal {{enableCamera ? '' : 'btn-active'}}" bindtap="toggleVideo">
    77. <image
    78. class="btn-image"
    79. src="{{enableCamera
    80. ? 'https://b.bdstatic.com/searchbox/icms/searchbox/img/camera-off.png'
    81. : 'https://b.bdstatic.com/searchbox/icms/searchbox/img/camera-on.png'}} ">
    82. </image>
    83. </view>
    84. <view class="btn-normal" bindtap="switchCamera" >
    85. <image
    86. class="btn-image"
    87. src="https://b.bdstatic.com/searchbox/icms/searchbox/img/switch.png">
    88. </image>
    89. </view>
    90. </view>
    91. <view class="top-mask"></view>
    92. <view class="bottom-mask"></view>
    93. </view>

    赞(0) 打赏
    未经允许不得转载:九八云安全 » 九八云百度小程序教程:rtc-room 实时音视频通话房间

    评论 抢沙发