Skip to main content

Media Streams API - 提供对流式音频和视频数据的支持

Media Capture and Streams API,通常称为 Media Streams APIMediaStream API,是与 WebRTC 相关的 API,它提供对流式音频和视频数据的支持。

它提供了用于处理流及其组成轨道的接口和方法、与数据格式相关的约束、异步使用数据时的成功和错误回调以及在此过程中触发的事件。

概念和用法

API 基于对 MediaStream 对象的操作,该对象表示音频或视频相关数据的流量。请参阅 获取视频 中的实例。

MediaStream 由零个或多个 MediaStreamTrack 对象组成,代表各种音频或视频轨道。每个 MediaStreamTrack 可能有一个或多个通道。通道表示媒体流的最小单位,例如与给定扬声器关联的音频信号,例如立体声音轨中的左声道右声道

MediaStream 对象有一个输入和一个输出。由 getUserMedia() 生成的 MediaStream 对象称为本地,并将用户的相机或麦克风其中一个作为其源输入。非本地 MediaStream 可能表示一个媒体元素,如 <video><audio>,它是一个来自网络并通过 WebRTC RTCPeerConnection API 获取的流 ,或使用 Web Audio API MediaStreamAudioSourceNode 创建的流。

MediaStream 对象的输出链接到 consumer。它可以是媒体元素,例如 <audio><video>、WebRTC RTCPeerConnection API 或 Web Audio API MediaStreamAudioSourceNode

接口

在这些参考文章中,您将找到您需要了解的有关构成 Media Capture 和 Streams API 的每个接口的基本信息。

Media Capture 和 Streams API 规范的早期版本包括单独的 AudioStreamTrackVideoStreamTrack 接口 —— 两个接口都基于 MediaStreamTrack —— 它们表示这些类型的流。这些不再存在,您应该更新任何现有代码以直接使用 MediaStreamTrack

事件

指南和教程

以下文章提供了额外的指导和操作方法信息,可帮助您学习使用 API,以及如何执行您可能希望处理的特定任务。

功能、约束和设置

本文讨论了约束和能力的双重概念,以及媒体设置,并包括一个我们称之为实例约束练习器的示例。约束练习器可让您试验不同约束集的结果,这些约束集应用于来自计算机 A/V 输入设备(如网络摄像头和麦克风)的音频和视频轨道。

桌面浏览器兼容性

特性ChromeEdgeFirefoxInternet ExplorerOperaSafari
基础支持

55

21webkit

12

79webkit

15不支持

42

15webkit

11
MediaStream() 构造函数

55

21webkit

12

79webkit

44不支持

42

15webkit

11
active421252不支持2911
active 事件4212不支持不支持29不支持
addTrack261244不支持不支持11
addtrack 事件261250不支持不支持11
clone351248不支持2211
getAudioTracks2612221不支持1511
getTrackById261249不支持不支持11
getTracks381234不支持2511
getVideoTracks2612222不支持1511
id261241不支持1511
inactive 事件4212不支持不支持29不支持
removeTrack261244不支持1511
removetrack 事件2612

72

59 — 723

不支持不支持11
stop29 — 4713 — 79不支持不支持不支持不支持

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基础支持

55

4.4webkit

55

25webkit

未知15未知

42

14webkit

11
MediaStream() 构造函数

55

4.4webkit

55

25webkit

未知42未知

42

14webkit

11
active4242未知52未知2911
active 事件4242未知不支持未知29不支持
addTrack3726未知不支持未知不支持11
addtrack 事件4.426未知50未知不支持11
clone3735未知48未知2211
getAudioTracks3726未知221未知不支持11
getTrackById3726未知49未知不支持11
getTracks3838未知34未知2511
getVideoTracks3726未知222未知不支持11
id4.426未知41未知1411
inactive 事件4242未知不支持未知29不支持
removeTrack3726未知44未知不支持11
removetrack 事件4.426未知

79

59 — 793

未知不支持11
stop4.4 — 4729 — 47未知不支持未知不支持不支持

1. Before Firefox 64, this method returned an array of AudioStreamTrack objects. However, MediaStreamTrack has now subsumed that interface's functionality.

2. Before Firefox 64, this method returned an array of VideoStreamTrack objects. However, MediaStreamTrack has now subsumed that interface's functionality.

3. Before Firefox 72, the event handler was exposed but had no effect.

相关链接