通用

检测当前浏览器的音视频兼容性

WebRTC.checkCompatibility().then(function(data) {
  console.log('兼容性检查', data);
});

data 具体内容如下

obj 属性 类型 说明
obj['system'] string 系统类型
obj['browser'] string 浏览器名称
obj['version'] string 浏览器版本号
obj['WebRTC'] bool 是否支持基本的 webrt 功能
obj['WebAudio'] bool 是否支持基本的 webaudio 功能
obj['H264'] bool 是否支持 H264 编码(我们的架构目前只支持 H264)
obj['MediaStream'] bool 是否支持媒体流处理
obj['GetUserMedia'] bool 是否支持设备采集
obj['Microphone'] bool 当前是否有麦克风设备
obj['MicrophoneList'] array 当前麦克风列表
obj['Camera'] bool 当前是否有摄像头设备
obj['CameraList'] array 当前摄像头列表

简化 Promise 链式调用

// 开启麦克风
function startMicro(){
  return netcall.startDevice({
    type: Netcall.DEVICE_TYPE_AUDIO_IN,
    device: deviceMicro,
  }).catch(function(err) {
    console.log('启动麦克风失败', err)
  })
}

// 开启摄像头
function startCamera(){
  return netcall.startDevice({
    type: Netcall.DEVICE_TYPE_VIDEO,
    device: deviceCamera,
      width: 640,
      height: 480
    })
  .catch(function(err) {
    console.log('启动摄像头失败', err)
  })
}

// 设置本地预览画面大小
function setLocalVideoSize(){
  return netcall.setVideoViewSize({
    with: 500,
    height: 500,
    cut:true
  })
}

const netcall = this.netcall
const arrFn = [
  startMicro,
  netcall.setCaptureVolume.bind(netcall),
  startCamera,
  netcall.changeRoleToPlayer.bind(netcall)
  netcall.startRtc.bind(netcall),
  setLocalVideoSize
]

const promise = WebRTC.pipe(arrFn)

promise
  .then(function () {
    console.log('webrtc连接成功')
  })
  .catch(function (e) {
    console.log('发生错误, 结束会话', e)
    netcall.leaveChannel()
  })

上面示例中的一些参数说明如下

obj 属性 类型 说明
deviceMicro obj 指定需要打开的麦克风设备,参考获取指定设备列表
deviceCamera obj 指定需要打开的摄像头设备,参考获取指定设备列表

请注意绑定作用域,防止出现意外错误或者陷入死循环