播放

该章节主要介绍和播放相关的功能。包括:播放本地音频播放本地视频播放远端音频播放远端视频等功能,通过阅读本章节,您可以快速了解如何播放本地和远端的音频,如何调节音量大小,如何播放本地和远端视频,如何调节画面大小等。

预览本地摄像头

var node = document.getElementById('localVideo')
netcall.startLocalStream(node)

停止预览本地摄像头

netcall.stopLocalStream()
参数名 类型 说明
node dom [可选]视频显示的dom容器

预览远程视频流

var node = document.getElementById('localVideo')
var param = {
  account: 'testAccount',
  node: node,
  poster: 'http://dev.netease.im/images/logo2.png'
}
// 开启远程视频预览
netcall.startRemoteStream(param).then(function(video){
  console.log('xxx的视频标签', video)
})

param对象包含了需要开启视频流的账号和对应的dom容器节点

param参数属性 类型 说明
account string [可选]对方的账号
node dom [可选]视频显示的dom容器
poster string [可选]当没有视频流时默认的视频海报图片

停止预览远程视频流

var account = 'testAccount'
netcall.stopRemoteStream(account)
参数名 类型 说明
account string 目标账号

播放本地音频

netcall.startDevice({
  type: Netcall.DEVICE_TYPE_AUDIO_OUT_LOCAL
}).catch(function(err) {
  console.log('播放自己的声音失败', err)
})

停止播放本地音频

netcall.stopDevice(Netcall.DEVICE_TYPE_AUDIO_OUT_LOCAL)

播放对方音频

netcall.startDevice({
  type: Netcall.DEVICE_TYPE_AUDIO_OUT_CHAT
}).catch(function() {
  console.log('播放对方的声音失败')
})

停止播放所有远程音频

netcall.stopDevice(Netcall.DEVICE_TYPE_AUDIO_OUT_CHAT)

设置播放音量大小

netcall.setPlayVolume(255)

设置本地视频画面大小

var param = {
  width: 500,
  height: 400,
  cut: true
}
netcall.setVideoViewSize(param)

param 对象包含了需要设置预览视频画面大小和是否进行裁剪

param参数属性 类型 说明
width number 需要预览画面的宽度
height number 需要预览画面的高度
cut bool 是否进行裁剪

设置远程视频画面大小

var param = {
  account: 'testAccount',
  width: 500,
  height: 400,
  cut: true
}
netcall.setVideoViewRemoteSize(param)

param 对象包含了需要设置预览视频画面大小和是否进行裁剪

param参数属性 类型 说明
account string 需要调节画面大小的目标账号
width number 需要预览画面的宽度
height number 需要预览画面的高度
cut bool 是否进行裁剪(默认不裁剪)

视频和演示混频功能

var param = {
  enableMixVideo: 'true',
  videoLayout: Netcall.LAYOUT_TOP_RIGHT,
  videoCompressSize: Netcall.CHAT_VIDEO_QUALITY_MEDIUM
}
netcall.setMixConf(param)

param 对象包含了需要设置视频和演示混频的参数

param参数属性 类型 说明
enableMixVideo bool 是否启动混频功能,如果想取消混频,这里设置false即可
videoLayout number 混频时摄像头的布局具体值请参照这里
videoCompressSize number 混频时摄像头压缩的比例,由于演示画面的大小是Netcall.CHAT_VIDEO_QUALITY_720P,为了防止混频时视频画面过大,建议采用Netcall.CHAT_VIDEO_QUALITY_HIGH及以下的画面大小具体值请参照这里

音视频播放状态检测

netcall.getPlayState(account).then(res => {
  console.log('播放状态: ', res.audioState)
  console.log('播放状态: ', res.videoState)
}).catch(err => {
  console.log('播放状态失败: ', err)
})

res 对象包含了检测到的结果

参数属性 类型 说明
audioState string 音频播放状态
videoState string 视频播放状态
audioState参数属性 类型 说明
isPlaying string 音频播放状态
playErrorReason string 音频播放异常原因
videoState参数属性 类型 说明
isPlaying string 视频播放状态
playErrorReason string 视频播放异常原因

音频播放说明

各个浏览器都在限制声音的自动播放,这里以Chrome、Safari、Firefox为例说明

Chrome

sdk优化过音频播放逻辑,一般是用户再有页面刷新的业务场景时,才可能出现音频播放失败的问题,因为此时用户还没有交互

Safari

Safari浏览器可能出现音频无法播放的问题

Firefox

Firefox浏览器可能出现音频、视频无法播放的问题