音视频设备检测
更新时间: 2024/09/18 16:26:13
在会议等场景,用户在开始通话前,通常会选择进行音视频设备的选择和检测,以保证进入通话后的音视频体验。
本文档介绍如何获取视频设备列表,并开启指定设备进行设备检测。为保证通话或直播质量,我们推荐在进入房间前进行视频设备测试,以检测摄像头等视频设备是否能够正常工作。
示例项目
网易云信在 GitHub 上提供音视频设备检测的开源示例项目 DeviceDetection,您可以前往下载体验,也可以在线体验此功能。
实现方法
- 调用 getCameras 获取摄像头设备列表;并调用 getMicrophones 获取音频输入设备列表。
您也可以通过方法 getDevices 直接获取所有设备列表。
-
通过 createStream 创建音视频流对象时,通过 microphoneId 和 cameraId 指定音频和视频输入设备,开启指定的设备。
-
通过 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);
})
})
此文档是否对你有帮助?