webrtc的存在给在线视频会议系统带来了新的模式,TSINGSEE青犀视频开发的网页视频会议系统EasyRTC综合了webrtc和rtmp/rtsp方案的优点,支持一对一、一对多等视频会议互动通话,满足语音社交、在线教育和培训、视频会议和远程医疗等场景。

企业级私有化部署视频会议系统EasyRTC-MCU进入会议室获取设备权限失败问题调整_EasyRTC-MCU

EasyRTC分为MCU版本和SFU版本,EasyRTC-MCU版本在进入会议室的时候,如果是第一次进入,会先获取本页面对摄像头和麦克风,此时若用户不进行操作,或是等待5秒以上,则会进入会议室失败,且在此进入时会直接报权限获取失败。因为等待时间而造成的获取权限失败通常都是不合理的,因此我们需要对此处进行调整。

企业级私有化部署视频会议系统EasyRTC-MCU进入会议室获取设备权限失败问题调整_EasyRTC-MCU_02

首先进入会议室,必须获取到设备的权限,因此进入会议室前,可以做一个获取权限判断,如果用户选择确定则进入会议室,如果用户手动点击取消,则取消进入会议室,同时下次进入时,会直接提示请先获取设备权限。若用户不操作,则一直处于获取权限弹框状态。

企业级私有化部署视频会议系统EasyRTC-MCU进入会议室获取设备权限失败问题调整_EasyRTC-MCU_03

实现代码参考如下:

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技术为什么突然崛起了。