浏览器环境检测
在开始音视频通话之前,建议您先使用avdEngine.checkBrowserSupport()接口检测 SDK 是否支持当前网页。如果 SDK 不支持当前浏览器,建议用户使用最新版的 Chrome 浏览器、Edge 浏览器、Safari 浏览器、Firefox 浏览器。
var browserSupport = avdEngine.checkBrowserSupport();
if(browserSupport){
console.log("当前网页支持SDK.");
}else{
console.log("不支持使用 SDK,引导用户使用最新版的 Chrome 浏览器。");
}
⚠️ avdEngine.checkBrowserSupport()
返回的检测结果为 false 时,可能是以下原因:
当前浏览器不支持 WebRTC 相关能力,您需要引导用户使用推荐的浏览器 浏览器与应用环境信息
另外SDK提供了avdEngine.getBrowserDetect()接口, 可以返回SDK检测到的浏览器相关一些信息。
var detect = avdEngine.getBrowserDetect();
var output = 'navigator.userAgent:' + navigator.userAgent + '<br>';
output += '浏览器内核名称: ' + detect.browser.name + '<br>';
output += '内核版本: ' + detect.browser.fullVersion + '<br>';
output += '定制外壳: ' + detect.browser.isCustomized + '<br>';
output += '外壳名称: ' + detect.browser.shellName + '<br>';
output += '外壳版本: ' + detect.browser.shellFullVersion + '<br>';
output += '操作系统名称: ' + detect.osName + '<br>';
output += '是否支持webrtc的GetUserMedia: ' + detect.getUserMediaSupport + '<br>';
output += '是否支持webrtc的RTCPeerConnection: ' + detect.RTCPeerConnectionSupport + '<br>';
output += '是否支持webrtc的DataChannel: ' + detect.dataChannelSupport + '<br>';
output += '是否支持WebSocket: ' + detect.WebSocketSupport + '<br>';
output += '是否支持屏幕共享: ' + detect.screenSharingSupport + '<br>';
output += '是否支持ORTC: ' + detect.ORTCSupport + '<br>';
console.log("SDK检测到的浏览器相关信息:"+output);
音视频设备测试
为保证用户在使用AVDSDK 的过程中有更好的用户体验,我们建议您在用户加入 AVDRTC 房间之前,对用户设备进行检测并给出建议和引导。
//设备初始化
avdEngine.initDevice().then(function(result){
if(avdEngine.hasCamera){
console.log("当前有摄像头设备");
}else{
c onsole.log("当前没有摄像头设备");
}
if(avdEngine.hasMicrophone){
console.log("当前有麦克风设备");
}else{
console.log("当前没有麦克风设备");
}
});
if(avdEngine.isFirefox) {
avdEngine.checkOpenVideoAndAudio(cameraId,microphoneId).then(showVideoAndAudio).otherwise(alertError);
} else {
avdEngine.checkOpenVideo(cameraId).then(showVideo).otherwise(alertError);
avdEngine.checkOpenAudio(microphoneId).then(showAudio).otherwise(alertError);
}
function showVideoAndAudio(stream) {
checkVideo.srcObject = stream.videoStream;
checkVideo.play();
checkAudio.srcObject = stream.audioStream;
checkAudio.play();
var intervalMilis = 500; //音量采购频率,毫秒
avdEngine.checkAudioLevel(intervalMilis,showAudioLevel);
}
function showVideo(stream) {
checkVideo.srcObject = stream;
checkVideo.play();
}
function showAudio(stream) {
checkAudio.srcObject = stream;
checkAudio.play();
var intervalMilis = 500; //音量采购频率,毫秒
avdEngine.checkAudioLevel(intervalMilis,showAudioLevel);
}
function showAudioLevel(audioLevel) {
console.log("音量值(阈值0-10):") + audioLevel;
}
avdEngine.checkCloseVideo(); //关闭设备检测中摄像头
avdEngine.checkCloseAudio(); //关闭设备检测中麦克风
应用层参考效果图: