音视频设备检测

更新时间: 2024/09/18 16:26:13

在会议等场景,用户在开始通话前,通常会选择进行音视频设备的选择和检测,以保证进入通话后的音视频体验。

本文档介绍如何获取视频设备列表,并开启指定设备进行设备检测。为保证通话或直播质量,我们推荐在进入房间前进行视频设备测试,以检测摄像头等视频设备是否能够正常工作。

示例项目

网易云信在 GitHub 上提供音视频设备检测的开源示例项目 DeviceDetection,您可以前往下载体验,也可以在线体验此功能。

实现方法

  1. 调用 getCameras 获取摄像头设备列表;并调用 getMicrophones 获取音频输入设备列表。

您也可以通过方法 getDevices 直接获取所有设备列表。

  1. 通过 createStream 创建音视频流对象时,通过 microphoneId 和 cameraId 指定音频和视频输入设备,开启指定的设备。

  2. 通过 play 方法播放音视频流,测试麦克风和摄像头设备是否正常工作。

示例代码

js// 此处以同时启动麦克风与摄像头设备示例
NERTC.getDevices().then((devices)=>{

  var audioDevices = devices.audioIn;  //数组,麦克风设备列表
  var videoDevices = devices.video;  //数组,摄像头设备列表

  var uid = Math.floor(Math.random()*10000);
  var selectedMicrophoneId = audioDevices[0].deviceId;
  var selectedCameraId = videoDevices[0].deviceId;
  var localStream = NERTC.createStream({
      uid: uid,
      audio: true,
      microphoneId: selectedMicrophoneId, //指定要开启的mic
      video: true,
      cameraId: selectedCameraId, //指定要开启的camera
      screen: false
  });

  localStream.init().then(()=>{
    //用于播放视频的div元素
    let div = document.getElementById('local-container')
    localStream.play(div)
    //设置播放的视频容器大小    
    localStream.setLocalRenderMode({
      width: 180,
      height: 150,
      cut: true
    })

    setInterval(function(){
        console.log(`获取mic采集的音量: ${localStream.getAudioLevel()}`);
    }, 1000);
  })
})
此文档是否对你有帮助?
有帮助
去反馈
  • 示例项目
  • 实现方法
  • 示例代码