直播过程控制
本章节介绍互动直播过程中网易云信提供的各种控制功能。包括互动直播控制和通用控制。
互动直播控制包括改变自己在房间中的角色(互动者/观众)、互动直播过程中切换推流地址
通用控制包括是否接收某用户的音频或视频数据、设置扬声器等
发送通话控制信息
API介绍
- 在通话过程中,可以通过该方法实时发送各种控制指令,常见指令如下
- 通知对方自己收到了呼叫
- 通知对方自己打开了音频麦克风
- 通知对方自己打开了视频摄像头
- 通知对方自己正忙
- 通知对方自己麦克风不可用
- 通知对方自己摄像头不可用
- 通知对方自己请求从音频切换到视频
- 通知对方自己同意切换到视频
- 通知对方自己拒绝切换到视频
- 通知对方从视频切换到音频
- 在通话过程中,可以通过该方法实时发送各种控制指令,常见指令如下
示例
// 通知对方自己关闭了摄像头
var param = {
channelId: 1511182568418,
command: Netcall.NETCALL_CONTROL_COMMAND_NOTIFY_VIDEO_OFF
}
netcall.control(param)
- 参数说明
param参数属性 | 类型 | 说明 |
---|---|---|
channelId | number | 当前会话的唯一id值 |
command | number | 会话控制指令具体值请参照这里 |
- 示例
- 特殊说明(可选)
收到通话控制信息回调
API介绍
- 通话过程中通过监听该回调事件可以接收会话指令通知,做出相应处理
示例
netcall.on('control', function(obj) {
// 如果不是当前通话的指令, 直接丢掉
if (netcall.notCurrentChannelId(obj)) {
return
}
console.log('on control', obj)
})
- 参数说明
obj参数属性 | 类型 | 说明 |
---|---|---|
channelId | number | 当前会话的唯一id值 |
command | number | 会话控制指令具体值请参照这里 |
互动直播过程控制
改变自己在房间中的角色
- API介绍
- 在多人房间模式中,可以通过该方法切换自己的房间中的角色,有以下两种
角色 | 说明 |
---|---|
player | 互动者,可以发送自己的音频和视频给房间中的其他人呢 |
audience | 观众,只允许接收其他人的音频和视频,不能发送自己的音频和视频 |
- 示例
// 切换为互动者
netcall.changeRoleToPlayer().then(function(obj) {
console.log('切换成功,当前角色', obj)
})
// 切换为观众
netcall.changeRoleToAudience().then(function(obj) {
console.log('切换成功,当前角色', obj)
})
通用控制
指定某用户设置是否对其静音
API介绍
- 在通话的过程中(尤其是在多人房间中),可以选择不听某个参与者的声音,这时可以调用该方法指定对某参与者进行静音
- 该方法不影响其他参与者收听目标参与者的声音
示例
var account = 'testAccount'
netcall.setAudioBlack(account)
- 参数说明
参数名 | 类型 | 说明 |
---|---|---|
account | string | 需要静音的目标账号 |
取消对某用户的静音
API介绍
- 在通话的过程中(尤其是在多人房间中),如果对某参与者静音了,想要重新收听该参与者的声音,可以调用该方法取消静音
示例
var account = 'testAccount'
netcall.setAudioStart(account)
- 参数说明
参数名 | 类型 | 说明 |
---|---|---|
account | string | 需要取消静音的目标账号 |
指定某用户设置是否接收其视频
API介绍
- 在通话的过程中(尤其是在多人房间中),可以选择不看目标参与者的视频画面,这时可以调用该方法指定对目标参与者屏蔽视频
- 该方法不影响其他参与者接收和观看目标参与者的视频画面
示例
var account = 'testAccount'
netcall.setVideoBlack(account)
- 参数说明
参数名 | 类型 | 说明 |
---|---|---|
account | string | 需要屏蔽画面的目标账号 |
取消对目标用户的视频屏蔽
API介绍
- 在通话的过程中(尤其是在多人房间中),如果屏蔽了目标参与者的视频画面,想要重新观看,可以调用该方法重新接收目标参与者的视频画面
- 该方法不影响其他参与者接收和观看目标参与者的视频画面
示例
var account = 'testAccount'
netcall.setVideoShow(account)
- 参数说明
参数名 | 类型 | 说明 |
---|---|---|
account | string | 需要重新接收画面的目标账号 |
动态切换推流地址
API介绍
- 主播在通话过程中,通过该方法可以动态切换推流地址
示例
netcall.updateRtmpUrl('推流url地址').then(function() {
console.log('推流地址更新成功')
})
- 参数说明
参数名 | 类型 | 说明 |
---|---|---|
videoQuality | number | 视频码率,100000 ~ 5000000 范围有效 |
动态更新互动直播主画面(PC Agent)
API介绍
- 主播在通话过程中,通过该方法可以动态更新互动直播主画面为目标用户的视频画面
示例
netcall.updateRtmpHostVideo({
account: 'testAccount'
}).then(function() {
console.log('动态更新互动直播主画面成功')
})
- 参数说明
参数名 | 类型 | 说明 |
---|---|---|
account | string | 目标用户的账号 |
动态设置分辨率(PC Agent)
API介绍
- 在通话的过程中可以动态设置己方的视频质量,即自己对外传输的视频分辨率
PC Agent适用!
示例
var videoQuality = Netcall.CHAT_VIDEO_QUALITY_720P
netcall.setSessionVideoQuality(videoQuality)
- 参数说明
参数名 | 类型 | 说明 |
---|---|---|
videoQuality | number | 视频画面分辨率,具体选值见这里 |
动态设置帧率(PC Agent)
API介绍
- 在通话的过程中可以动态设置己方的视频帧率
PC Agent适用!
示例
var videoFrameRate = Netcall.CHAT_VIDEO_FRAME_RATE_20
netcall.setSessionVideoFrameRate(videoFrameRate)
- 参数说明
参数名 | 类型 | 说明 |
---|---|---|
videoFrameRate | number | 视频帧率,具体选值见这里 |
动态设置码率(PC Agent)
API介绍
- 在通话的过程中可以动态设置己方的视频码率
PC Agent适用!
示例
var videoQuality = 200000
netcall.setSessionVideoBitrate(videoQuality)
- 参数说明
参数名 | 类型 | 说明 |
---|---|---|
videoQuality | number | 视频码率,100000 ~ 5000000 范围有效 |
本篇文档内容是否对您有帮助?
有帮助
我要吐槽
此文档对你是否有帮助
×
有帮助
我要吐槽
×