Day09 在浏览器上检查现有设备

前几篇介绍了 WebRTC 是如何连线的,今天我们要开始在浏览器上使用 WebRTC 的 API。

使用浏览器 + WebRTC 可以快速实现即时影音通讯,而且非常容易,下图可以看到在这十年的发展中,多数浏览器也都支援很成熟了。

https://ithelp.ithome.com.tw/upload/images/20210923/20130062OskVuYFwPu.png

https://caniuse.com/rtcpeerconnection

查看目前有哪些设备

我们要进行语音及视讯通话最基本的就是要有摄影机及麦克风,浏览器要如何查看目前有哪些设备呢?

使用 navigator.mediaDevices.enumerateDevices() 获取音视讯装置,我们可以再 Chrome 的consol中输入测试看看。

https://ithelp.ithome.com.tw/upload/images/20210923/20130062g3VYWwg7UR.png

可以看到返回的是一个 Promise 里面有 DeviceInfo 阵列,阵列中有每个输入 / 输出设备的讯息,有四个属性:

  1. deviceId: 设备的Id
  2. kind: 设备的种类
  3. label: 设备的名称
  4. groupId: 若两个设备的id相同,代表是同一个物理设备

但是!如果没有授权访问设备的权限,我们会收到名称及deviceId都是空的,这也是非常合理的,如果任何网站随便都可以读取我们的麦克风摄影机,想想都觉得很可怕!

我们可以呼叫 getUserMedia 让浏览器来询问使用者是否给予权限,在consol中输入以下就可以看到要求权限!

navigator.mediaDevices.getUserMedia({ video: true, audio: true })

https://ithelp.ithome.com.tw/upload/images/20210923/201300622xJ510ziQU.png

今天我们透过浏览器,测试了获取麦克风及相机的权限还有检查目前有哪些设备可以使用,明天我们来看看 getUserMedia 可以做哪些事吧!


<<:  Day 23 - Rancher Fleet 环境架设与介绍

>>:  如果你想要的更多,你得对自己做更高的要求。

Flutter基础介绍与实作-Day24 旅游笔记的实作(5)

今天要来写的是点点及南部按钮後会出现的画面 先在assets资料夹里的Food资料夹下建立一个南部的...

Day11:开发 MVP

开发 mvp ...

[Day16] Vite 出小蜜蜂~ Text 文字!

Day16 接下来,卡比想要先去做 介面 (HUD), 方便我们进入到计分系统的时候,可以顺便验证分...

30天完成家庭任务平台:第二十九天

我最近试着把家庭任务平台的前後端分离时,後端要开出API给前端来抓取资料,但因为家庭任务平台会有权限...

Day 30: 资安的隐藏第六面项:AWS 合规 & 完赛心得

前面讲了在AWS上的资安五大面向以及相关的服务简介、操作,今天我们来看看隐藏的第六面向:AWS 合规...