webrtc的存在给在线视频会议系统带来了新的模式,TSINGSEE青犀视频开发的网页视频会议系统EasyRTC综合了webrtc和rtmp/rtsp方案的优点,支持一对一、一对多等视频会议互动通话,满足语音社交、在线教育和培训、视频会议和远程医疗等场景。
EasyRTC分为MCU版本和SFU版本,EasyRTC-MCU版本在进入会议室的时候,如果是第一次进入,会先获取本页面对摄像头和麦克风,此时若用户不进行操作,或是等待5秒以上,则会进入会议室失败,且在此进入时会直接报权限获取失败。因为等待时间而造成的获取权限失败通常都是不合理的,因此我们需要对此处进行调整。
首先进入会议室,必须获取到设备的权限,因此进入会议室前,可以做一个获取权限判断,如果用户选择确定则进入会议室,如果用户手动点击取消,则取消进入会议室,同时下次进入时,会直接提示请先获取设备权限。若用户不操作,则一直处于获取权限弹框状态。
实现代码参考如下:
getMedia(params) { let that = this; let options; if (params.type === "video") { options = { audio: true, video: true, }; } else { options = { audio: true, video: false, }; } console.log(options); navigator.mediaDevices .getUserMedia(options) .then(function (stream) { console.log("获取成功"); that.$router.push({ path: "player", query: { id: params.id, type: params.type }, }); }) .catch((res) => { that.$message({ type: "error", message: "请先获取设备权限!", }); }); },
WebRTC是一个支持网页浏览器进行实时语音对话或视频对话的API,实现了基于网页的视频会议,标准是WHATWG协议,目的是通过浏览器提供简单的javascript就可以达到实时通讯能力,而EasyRTC在此基础之上增加了更加丰富且便捷的功能。如果对webrtc有兴趣,可阅读:WebRTC技术为什么突然崛起了。