直播过程控制

本章节介绍互动直播过程中网易云提供的各种控制功能。包括互动直播控制通用控制

互动直播控制包括改变自己在房间中的角色(互动者/观众)、互动直播过程中切换推流地址

通用控制包括是否接收某用户的音频或视频数据、设置扬声器等

发送通话控制信息

// 通知对方自己关闭了摄像头
var param = {
  channelId: 1511182568418,
  command: Netcall.NETCALL_CONTROL_COMMAND_NOTIFY_VIDEO_OFF
}
netcall.control(param)
param参数属性 类型 说明
channelId number 当前会话的唯一id值
command number 会话控制指令具体值请参照这里

收到通话控制信息回调

netcall.on('control', function(obj) {
  // 如果不是当前通话的指令, 直接丢掉
  if (netcall.notCurrentChannelId(obj)) {
    return
  }
  console.log('on control', obj)
})
obj参数属性 类型 说明
channelId number 当前会话的唯一id值
command number 会话控制指令具体值请参照这里

互动直播过程控制

改变自己在房间中的角色

角色 说明
player 互动者,可以发送自己的音频和视频给房间中的其他人呢
audience 观众,只允许接收其他人的音频和视频,不能发送自己的音频和视频
// 切换为互动者
netcall.changeRoleToPlayer().then(function(obj) {
  console.log('切换成功,当前角色', obj)
})

// 切换为观众
netcall.changeRoleToAudience().then(function(obj) {
  console.log('切换成功,当前角色', obj)
})

通用控制

指定某用户设置是否对其静音

var account = 'testAccount'
netcall.setAudioBlack(account)
参数名 类型 说明
account string 需要静音的目标账号

取消对某用户的静音

var account = 'testAccount'
netcall.setAudioStart(account)
参数名 类型 说明
account string 需要取消静音的目标账号

指定某用户设置是否接收其视频

var account = 'testAccount'
netcall.setVideoBlack(account)
参数名 类型 说明
account string 需要屏蔽画面的目标账号

取消对目标用户的视频屏蔽

var account = 'testAccount'
netcall.setVideoShow(account)
参数名 类型 说明
account string 需要重新接收画面的目标账号

动态切换推流地址

netcall.updateRtmpUrl('推流url地址').then(function() {
  console.log('推流地址更新成功')
})
参数名 类型 说明
videoQuality number 视频码率,100000 ~ 5000000 范围有效

动态设置分辨率(PC Agent)

var videoQuality = Netcall.CHAT_VIDEO_QUALITY_720P
netcall.setSessionVideoQuality(videoQuality)
参数名 类型 说明
videoQuality number 视频画面分辨率,具体选值见这里

动态设置帧率(PC Agent)

var videoFrameRate = Netcall.CHAT_VIDEO_FRAME_RATE_20
netcall.setSessionVideoFrameRate(videoFrameRate)
参数名 类型 说明
videoFrameRate number 视频帧率,具体选值见这里

动态设置码率(PC Agent)

var videoQuality = 200000
netcall.setSessionVideoBitrate(videoQuality)
参数名 类型 说明
videoQuality number 视频码率,100000 ~ 5000000 范围有效