上一篇我们使用 getUserMedia
来获取使用者装置权限,不过他的实际功能如其名,是用来取得使用者的媒体流(Media stream),里面包含了要求的影音轨(Track)。
var promise = navigator.mediaDevices.getUserMedia(constraints);
如果 getUserMedia
成功(使用者允许使用权限)则可以通过 Promise 获得 MediaStream
物件,也就是说我们可以从使用者的镜头、麦克风取得影音的资料了!
若是使用者拒绝我们访问设备或是访问的设备不可使用则 reject
返回 PermissionDeniedError
或 NotFoundError
等错误。
从刚刚的语法中可以看到, getUserMedia
需要带入一个参数 constraints ,其中包含 video
及 audio
,这个结构可以指定我们要收集音讯或是视讯,例如只收集视讯:
const contrains = {
video: true,
audio: false
};
难道只有这样?
不!我们还可以通过更进阶的条件(MediaTrackConstraints)去设定,例如我们的应用是上音乐课视讯可能较不重要:
const contrains = {
video: {
frameRate: 15,
width: 640,
height: 360,
},
audio: {
noiseSuppression: false,
autoGainControl: false
}
};
视讯的 FPS 设定为15,宽高设定为 640 x 360,为了收集乐器的声音关闭噪音消除及自动增益的功能。
作为可能涉及重大隐私问题的 API,通过 MediaDevices.getUserMedia()
取得使用者媒体权限时,只有以下情况会成功:
file://
协议打开的文件其他情况会失败回传 undefined。
<<: D-21 委派 ? delegate ? Action ? Linq
今天一样是要利用Editor Script进行少部份量化的工作,已经了解了怎麽样用Editor Sc...
在日本生活时,常会有一个场景 日本人听到我们的名字,会很自然地问「是中国人吗」 这时候我会回答「我是...
资讯安全相对论 与其追用没有漏洞的资通讯系统,不如务实且踏实的做好资讯与网路安全基础工作,确保不可控...
今天内容主要为实作模型和使用Django提供的管理网站进行资料操作。 模型 设计模型 今天将建立两个...
昨天没有写完的 Array & Slice(上) ,今天要来把补完进度。 那我们就开始吧 ─...