相机调用接口
MediaStream 接口是一个媒体内容的流.。一个流包含几个轨道,比如 视频(video) 和 音频(audio) 轨道。作用是从用户本地摄像机和麦克风访问媒体流。getUserMedia()方法是访问本机输入设备的主要方式。
- 首先是访问用户设备的摄像头和麦克风。我们检测可用设备的类型,获得用户访问这些设备的权限,并管理数据流。
- 注意:实时音视频以流对象的形式表示
通过询问用户是否授权,有安全控制,只允许授予一次权限,此后不再要求访问
输入设备选择由mediaStream处理
每个mediaStream对象包括几个mediaStreamTRack对象,代表来自不同设备的音视频
每个mediaStreamTrack对象可能包括几个信道(左声道和右声道)
两种方法输出mediaStream对象。
首先将音视频输出显示,设置srcObject属性将MediaStream附加到视频元素,
MediaStream属性
- MediaStream.active — 如果MediaStream处于活动状态,则返回true ,否则返回false
- MediaStream.ended —如果在对象上已触发结束事件,则返回true ,这意味着流已完全读取,如未达到流结尾,则为false。
- MediaStream.id — 对象的唯一标识符。
- MediaStream.label — 用户代理分配的唯一标识符。
事件
- MediaStream.onactive — 当MediaStream对象变为活动时触发的活动事件的处理程序。
- MediaStream.onaddtrack — 在添加新的MediaStreamTrack对象时触发的addTrack事件的处理程序。
- MediaStream.onended — 当流终止时触发的结束事件的处理程序。
- MediaStream.oninactive — 当MediaStream对象变为非活动状态时触发的非活动事件的处理程序。
- MediaStream.onremovetrack — 在从它移除MediaStreamTrack对象时触发的removeTrack事件的处理程序。
方法
- MediaStream.addTrack() -将作为参数的MediaStreamTrack对象添加到MediaStream中。如果已经添加了音轨,则没有发生任何事情。
- MediaStream.clone() -使用新id返回MediaStream对象的克隆
- MediaStream.getAudioTracks() -从MediaStream对象返回音频MediaStreamTrack对象的列表。
- MediaStream.getTrackById() -通过id返回跟踪。如果参数为空或未找到id,则返回null。如果多个磁道具有相同的id,则返回第一个磁道。
- MediaStream.getTracks() -从MediaStream对象返回所有MediaStreamTrack对象的列表
- MediaStream.getVideoTracks() -从MediaStream对象返回视频MediaStreamTrack对象的列表。
- MediaStream.removeTrack() -从MediaStream中删除作为参数的MediaStreamTrack对象。如果已删除该磁道,则不会发生任何操作。
接下来就是一些接口方法的小例子 ^^
MediaDevices.getUserMedia()
**getUserMedia() **方法提示用户获得使用媒体输入的权限,该输入将生成包含所请求媒体类型的曲目的媒体流。返回解析为MediaStream对象的promise。如果用户拒绝许可,或匹配媒体不可用,则承诺将被拒绝,并分别显示NotAllowedError或NotFoundError。
navigator.mediaDevices.getUserMedia({
audio: true, video: true })
.then(function(stream) {
var video = document.