媒体捕获及数据流
W3C Media Capture and Streams 文档定义了一组 JavaScript API,这些API使应用程序能够从平台请求音频和视频流,以及操纵和处理流数据。
流媒体 API
MediaStream
接口用于表示媒体数据流。 流可以是输入或输出,也可以是本地或远程(例如,本地网络摄像头或远程连接)。 必须注意,单个 MediaStream
可以包含零个或多个轨道。 每个轨道都有一个对应的 MediaStreamTrack
对象,该对象代表用户代理中的特定媒体源。 MediaStream
中的所有轨道在渲染时进行同步。MediaStreamTrack
表示包含一个或多个通道的内容,其中,通道之间具有定义的已知的关系。 通道是此 API 规范中考虑的最小单位。 图2-1显示了由单个视频轨道和两个不同的音频(左声道和右声道)轨道组成的 MediaStream
图2-1 由一个视频轨道和两个音频轨道组成的 MediaStream
W3C Media Capture Streams API 定义了两种方法 getUserMedia()
和 createObjectUrl()
,以下各节对此进行了简要说明。
获取本地多媒体内容
getUserMedia()
API,通过指定一组(强制或可选)成功和失败的回调函数,Web 开发人员可以访问本地设备媒体(当前是音频和/或视频)
getUserMedia(constraints, successCallback, errorCallback)
getUserMedia()
提示用户许可使用其网络摄像头或其他视频或音频输入。
URL
createObjectUrl()
方法指示浏览器创建和管理与本地文件或二进制对象(blob)关联的唯一URL:
createObjectURL(stream)
它在 WebRTC 中的典型用法是从 MediaStream
对象开始创建 Blob URL 。 然后,将在 HTML 页面内使用 Blob URL 。 实际上,本地和远程流都需要此过程。