连麦接入
简要说明
如果已经使用polyv连麦sdk:https://player.polyv.net/resp/rtc-sdk/latest/polyv-rtc.min.js的用户也可参考当前文档,更新到当前用法使用,使用上与连麦sdk基本一直,可快速替换
使用前准备
确认已经开通连麦功能
浏览器需为chrome 58及以上或firefox、safari等主流浏览器
页面必须在 HTTPS 协议或者 localhost 中访问
连麦流程简介
1、讲师在客户端点击开启学员视频连线/开启学员语音连线
2、OPEN_MICROPHONE
事件被触发
3、学员可以通过sdk实例的joinChannel
方法向讲师发出连麦请求
4、讲师看到申请点击允许连麦,这时候页面sdk监听的ALLOW_MICROPHONE
事件被触发
5、学员自动加入连麦,开始发起推流,事件INIT_LOCAL_STREAM_READY
被触发,设置相应参数,进行推流
6、推流成功后如果收到讲师挂断或者学员主动点击挂断则退出连麦
参考代码
订阅频道中其他流简介
1、学员成功加入连麦后会通过USER_STREAM_ADDED
事件接收到频道中已存在的用户(包括讲师)、在该学员后加入学员的流 2、USER_STREAM_ADDED
事件触发调用回调中的evt.subscribe
方法对流进行订阅 3、若有用户期间退出频道则 USER_PEER_LEAVE
事件被触发
快速开始
连麦实例
实例方法
rtc.on(event: string, eventHandler: Function): void
rtc.on(event: string, eventHandler: Function): void
用于监听开启关闭连麦、订阅、推流状态等事件
joinChannel(callback?: Function): void
joinChannel(callback?: Function): void
客户端开启连麦后可调用该方法申请加入 示例代码
参数
callback?: Function
申请失败的回调函数
cancelJoinChannel(callback?: Function): void
cancelJoinChannel(callback?: Function): void
申请加入连麦后,在还没有收到允许连麦消息时可调用,用于取消申请
参数
callback?: Function
取消申请失败的回调函数
disableVideo(): void
disableVideo(): void
推流后用于禁用本地视频轨道
enableVideo(): void
enableVideo(): void
禁用本地视频轨道后用于恢复视频轨道
disableAudio(): void
disableAudio(): void
推流后用于禁用本地音频轨道
enableAudio(): void
enableAudio(): void
禁用本地视频轨道后用于恢复音频轨道
leaveChannel(): void
leaveChannel(): void
用于挂断连麦,退出连麦频道,停止推流
openDeviceSetting(): void
openDeviceSetting(): void
打开设备设置面板,可用于设备调试以及更换设备
closeDeviceSetting(): void
closeDeviceSetting(): void
关闭设备设置面板
openInviting(): void
openInviting(): void
打开邀请上麦面板
closeInviting(): void
closeInviting(): void
关闭邀请上麦面板
destroy(): void
destroy(): void
销毁实例,如果正在连麦会退出连麦
事件
rtc.on('OPEN_MICROPHONE', callback: Function): void
rtc.on('OPEN_MICROPHONE', callback: Function): void
客户端开启连麦, 此时可以申请加入连麦 示例代码:
rtc.on('CLOSE_MICROPHONE', callback: Function): void
rtc.on('CLOSE_MICROPHONE', callback: Function): void
客户端关闭连麦,此时不可以申请加入连麦 示例代码:
rtc.on('JOIN_CHANNEL_TIMEOUT', callback: Function): void
rtc.on('JOIN_CHANNEL_TIMEOUT', callback: Function): void
申请连麦超时 示例代码:
rtc.on('ALLOW_MICROPHONE', callback: Function): void
rtc.on('ALLOW_MICROPHONE', callback: Function): void
客户端通过连麦申请,这时会自动初始化本地流并加入连麦频道 示例代码:
rtc.on('INIT_LOCAL_STREAM_READY', callback: Function): void
rtc.on('INIT_LOCAL_STREAM_READY', callback: Function): void
已经加入RTC频道,准备初始化本地流,此时可对本地流进行部分配置 示例代码:
evt.init(config: Object)
开始初始化本地流并推流,必须调用此方法,否则无法加入连麦
参数说明
element: HTMLElement
:Node节点,用于显示本地流
control?: boolean
:是否显示控制栏,默认值为 true
profile?: string
:设置视频属性, 默认值为 '240P'
profile 设置
视频属性 | 分辨率 | 码率(Kbps) |
---|---|---|
240p | 320 × 240 | 200 |
240p_1 | 320 × 240 | 200 |
240p_4 | 424 × 240 | 220 |
480p | 640 × 480 | 500 |
480p_1 | 640 × 480 | 500 |
480p_8 | 848 × 480 | 610 |
720p | 1280 × 720 | 1130 |
720p_1 | 1280 × 720 | 1130 |
720p_2 | 1280 × 720 | 2080 |
720p_5 | 960 × 720 | 910 |
rtc.on('INIT_LOCALSTREAM_SUCCESS', callback: Function): void
rtc.on('INIT_LOCALSTREAM_SUCCESS', callback: Function): void
初始化本地流成功 示例代码:
rtc.on('INIT_LOCALSTREAM_ERROR', callback: Function): void
rtc.on('INIT_LOCALSTREAM_ERROR', callback: Function): void
初始化本地流失败 示例代码:
rtc.on('PUBLIC_STREAM_SUCCESS', callback: Function): void
rtc.on('PUBLIC_STREAM_SUCCESS', callback: Function): void
推流成功 示例代码:
rtc.on('PUBLIC_STREAM_ERROR', callback: Function): void
rtc.on('PUBLIC_STREAM_ERROR', callback: Function): void
推流失败 示例代码:
rtc.on('CLIENT_BANNED', callback: Function): void
rtc.on('CLIENT_BANNED', callback: Function): void
被讲师挂断连麦,连麦会退出,无需做其他操作 示例代码:
rtc.on('USER_STREAM_ADDED', callback: Function): void
rtc.on('USER_STREAM_ADDED', callback: Function): void
加入连麦频道后后收到老师以及其他连麦者的流,此时需要进行订阅 无延迟模式下不广播 示例代码:
evt.subscribe(config: Object, failCallback: Function)
subscribe 方法若不调用则不会显示频道内其他连麦者
参数说明
element: HTMLElement
: 显示流的Node节点
control?: boolean
: 是否显示控制栏,默认值为 true
rtc.on('USER_STREAM_SUBSCRIBED', callback: Function): void
rtc.on('USER_STREAM_SUBSCRIBED', callback: Function): void
订阅成功 示例代码:
rtc.on('USER_MUTE_VIDEO', callback: Function): void
rtc.on('USER_MUTE_VIDEO', callback: Function): void
频道内其他连麦者关闭视频推流 示例代码:
rtc.on('USER_UNMUTE_VIDEO', callback: Function): void
rtc.on('USER_UNMUTE_VIDEO', callback: Function): void
频道内其他连麦者重新开启视频推流 示例代码:
rtc.on('USER_MUTE_AUDIO', callback: Function): void
rtc.on('USER_MUTE_AUDIO', callback: Function): void
频道内其他连麦者关闭音频推流 示例代码:
rtc.on('USER_UNMUTE_AUDIO', callback: Function): void
rtc.on('USER_UNMUTE_AUDIO', callback: Function): void
频道内其他连麦者重新开启音频推流 示例代码:
rtc.on('LOCAL_MUTE_VIDEO', callback: Function): void
rtc.on('LOCAL_MUTE_VIDEO', callback: Function): void
本地视频推流关闭,被客户端禁止或者用户主动关闭 示例代码:
rtc.on('LOCAL_UNMUTE_VIDEO', callback: Function): void
rtc.on('LOCAL_UNMUTE_VIDEO', callback: Function): void
本地视频推流重新开启,被客户端开启或者用户主动开启 示例代码:
rtc.on('LOCAL_MUTE_AUDIO', callback: Function): void
rtc.on('LOCAL_MUTE_AUDIO', callback: Function): void
本地音频推流关闭,被客户端禁止或者用户主动关闭 示例代码:
rtc.on('LOCAL_UNMUTE_AUDIO', callback: Function): void
rtc.on('LOCAL_UNMUTE_AUDIO', callback: Function): void
本地音频推流重新开启,被客户端开启或者用户主动开启 示例代码:
rtc.on('USER_PEER_LEAVE', callback: Function): void
rtc.on('USER_PEER_LEAVE', callback: Function): void
订阅的流期间挂断连麦退出频道触发 无延迟模式下不广播 示例代码:
rtc.on('LEAVE_CHANNEL_SUCCESS', callback: Function): void
rtc.on('LEAVE_CHANNEL_SUCCESS', callback: Function): void
离开视频通话成功 示例代码:
rtc.on('STOP', callback: Function): void
rtc.on('STOP', callback: Function): void
主动挂断视频通话(点击默认控制栏的挂断按钮触发),这是可以恢复到未申请连麦的抓台 示例代码:
rtc.on('SWITCH_MASTER', callback: Function): void
rtc.on('SWITCH_MASTER', callback: Function): void
切换主讲人事件,这时可将页面对应连麦者更换位置,建议通过css切换位置 无延迟模式下不广播 示例代码:
rtc.on('NETWORK_QUALITY', callback: Function): void
rtc.on('NETWORK_QUALITY', callback: Function): void
当前用户的上下行网络质量,大约一到两秒触发一次 uplinkNetworkQuality 为上行质量,downlinkNetworkQuality为下行质量,取值0|1|2|3|4|5|6
0 网络质量未知
1 网络质量优秀
2 网络质量良好
3 网络质量一般
4 网络质量较差
5 网络质量糟糕
6 网络质量断开 示例代码:
rtc.on('INVITE_TO_MICROPHONE', callback: Function): void
rtc.on('INVITE_TO_MICROPHONE', callback: Function): void
收到连麦邀请事件,此时可显示连麦邀请弹窗 示例代码:
注意
在无延迟模式下sdk会自行订阅用户流所以不会广播'USER_STREAM_ADDED', 'SWITCH_MASTER', 'USER_PEER_LEAVE'事件
在普通场景下连麦注意连麦成功后隐藏cdn播放器显示rtc,离开连麦后做恢复处理
Last updated