媒体捕获及数据流

W3C Media Capture and Streams 文档定义了一组 JavaScript API,这些API使应用程序能够从平台请求音频和视频流,以及操纵和处理流数据。

流媒体 API

MediaStream 接口用于表示媒体数据流。 流可以是输入或输出,也可以是本地或远程(例如,本地网络摄像头或远程连接)。 必须注意,单个 MediaStream 可以包含零个或多个轨道。 每个轨道都有一个对应的 MediaStreamTrack 对象,该对象代表用户代理中的特定媒体源。 MediaStream 中的所有轨道在渲染时进行同步。MediaStreamTrack 表示包含一个或多个通道的内容,其中,通道之间具有定义的已知的关系。 通道是此 API 规范中考虑的最小单位。 图2-1显示了由单个视频轨道和两个不同的音频(左声道和右声道)轨道组成的 MediaStream

图2-1

图2-1 由一个视频轨道和两个音频轨道组成的 MediaStream

W3C Media Capture Streams API 定义了两种方法 getUserMedia()createObjectUrl(),以下各节对此进行了简要说明。

获取本地多媒体内容

getUserMedia() API,通过指定一组(强制或可选)成功和失败的回调函数,Web 开发人员可以访问本地设备媒体(当前是音频和/或视频)

  1. getUserMedia(constraints, successCallback, errorCallback)

getUserMedia() 提示用户许可使用其网络摄像头或其他视频或音频输入。

URL

createObjectUrl() 方法指示浏览器创建和管理与本地文件或二进制对象(blob)关联的唯一URL:

  1. createObjectURL(stream)

它在 WebRTC 中的典型用法是从 MediaStream 对象开始创建 Blob URL 。 然后,将在 HTML 页面内使用 Blob URL 。 实际上,本地和远程流都需要此过程。