您正在阅读此内容的英文版本,因为该语系尚未翻译。 帮助我们翻译此文章吧!
这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。
媒体流处理API(通常被称为媒体流API或流API)是描述音频或视频数据流的 WebRTC 的一部分,处理它们的方法,与数据类型相关的约束,成功和错误 当异步使用数据时的回调以及在处理期间触发的事件。
基本概念
这个API是基于操纵一个 MediaStream 对象代表音频或视频相关数据的流量。 通常一个 MediaStream是作为一个简单的URL string 它可以用来引用存储在DOM中的数据 File
, 或者一个 Blob
对象建立 window.URL.createObjectURL()
, 如视频所描述的。
一个 MediaStream 包含零个或更多的 MediaStreamTrack 对象,代表着各种的声轨和视频轨。 每一个 MediaStreamTrack 可能有一个或更多的通道。这个通道代表着媒体流的最小单元,比如一个音频信号对应着一个对应的扬声器,像是在立体声音轨中的左通道或右通道。
MediaStream 对象有着单一的输入和输出。由 getUserMedia()
创建的 MediaStream 对象是在本地借助用户相机和麦克风的源输入。非本地的 MediaStream
代表了一个媒体元素, 像是<video>
元素或是 <audio>
元素, 一般是源自网络的流,并通过 WebRTC PeerConnection API 或使用 Web Audio API 获得MediaStreamAudioSourceNode
元素。MediaStream
对象的输出能链接到一个用户。 它可以是一个媒体元素, 像是 <audio>
或者 <video>
, the WebRTC PeerConnection API 或是 Web Audio API MediaStreamAudioDestinationNode
。
参考
在这些参考文章中,您将找到构成Media Capture和Streams API的每个接口和事件需要了解的基本信息。
addtrack
(event)AudioStreamTrack
BlobEvent
ended (MediaStream)
(event)ended (MediaStreamTrack)
(event)MediaStream
MediaStreamConstraints
MediaStreamTrack
MediaStreamTrackEvent
MediaTrackConstraints
muted
(event)NavigatorUserMedia
NavigatorUserMediaError
overconstrained
(event)removetrack
(event)started
(event)unmuted
(event)URL
VideoStreamTrack
浏览器支持
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
MediaStream | Chrome Full support 14 | Edge Full support Yes | Firefox Full support 15 | IE No support No | Opera Full support Yes | Safari Full support Yes | WebView Android Full support 37 | Chrome Android Full support 18 | Firefox Android Full support 15 | Opera Android No support No | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
MediaStream() constructor | Chrome Full support 19 | Edge Full support Yes | Firefox Full support 44 | IE No support No | Opera Full support 42 | Safari No support No | WebView Android Full support 37 | Chrome Android Full support 25 | Firefox Android Full support 42 | Opera Android No support No | Safari iOS No support No | Samsung Internet Android Full support 6.0 |
active | Chrome Full support 45 | Edge Full support 12 | Firefox Full support 52 | IE No support No | Opera No support No | Safari Full support Yes | WebView Android Full support 45 | Chrome Android Full support 45 | Firefox Android Full support 52 | Opera Android No support No | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
active event | Chrome Full support 45 | Edge ? | Firefox ? | IE No support No | Opera ? | Safari ? | WebView Android Full support 45 | Chrome Android Full support 45 | Firefox Android ? | Opera Android No support No | Safari iOS ? | Samsung Internet Android ? |
addTrack | Chrome Full support 26 | Edge Full support 12 | Firefox Full support 44 | IE No support No | Opera No support No | Safari Full support Yes | WebView Android Full support 37 | Chrome Android Full support 26 | Firefox Android No support No | Opera Android No support No | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
addtrack event | Chrome Full support Yes | Edge Full support 12 | Firefox Full support 50 | IE No support No | Opera No support No | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android Full support 50 | Opera Android No support No | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
clone | Chrome Full support 45 | Edge Full support 12 | Firefox Full support 48 | IE No support No | Opera No support No | Safari Full support Yes | WebView Android Full support 45 | Chrome Android Full support 45 | Firefox Android Full support 48 | Opera Android No support No | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
ended | Chrome
No support
? — 54
| Edge ? | Firefox No support No | IE No support No | Opera No support ? — 39 | Safari ? | WebView Android
No support
? — 54
| Chrome Android
No support
? — 54
| Firefox Android No support No | Opera Android No support ? — 41 | Safari iOS ? | Samsung Internet Android Full support Yes |
getAudioTracks | Chrome Full support 26 | Edge Full support 12 | Firefox
Full support
22
| IE No support No | Opera Full support Yes | Safari Full support Yes | WebView Android Full support 37 | Chrome Android Full support 26 | Firefox Android
Full support
22
| Opera Android No support No | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
getTrackById | Chrome Full support 26 | Edge Full support 12 | Firefox Full support 49 | IE No support No | Opera No support No | Safari Full support Yes | WebView Android Full support 37 | Chrome Android Full support 26 | Firefox Android Full support 49 | Opera Android No support No | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
getTracks | Chrome Full support 45 | Edge Full support 12 | Firefox Full support Yes | IE No support No | Opera Full support Yes | Safari Full support Yes | WebView Android Full support 45 | Chrome Android Full support 45 | Firefox Android Full support Yes | Opera Android No support No | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
getVideoTracks | Chrome Full support 26 | Edge Full support 12 | Firefox
Full support
22
| IE No support No | Opera Full support Yes | Safari Full support Yes | WebView Android Full support 37 | Chrome Android Full support 26 | Firefox Android
Full support
22
| Opera Android No support No | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
id | Chrome No support ? — 54 | Edge Full support 12 | Firefox Full support 41 | IE No support No | Opera No support ? — 39 | Safari Full support Yes | WebView Android No support ? — 54 | Chrome Android No support ? — 54 | Firefox Android Full support 41 | Opera Android No support ? — 41 | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
inactive event | Chrome Full support 45 | Edge ? | Firefox ? | IE No support No | Opera ? | Safari ? | WebView Android Full support 45 | Chrome Android Full support 45 | Firefox Android ? | Opera Android No support No | Safari iOS ? | Samsung Internet Android ? |
label | Chrome
No support
? — 54
| Edge ? | Firefox ? | IE No support No | Opera No support No | Safari ? | WebView Android
No support
? — 54
| Chrome Android
No support
? — 54
| Firefox Android ? | Opera Android No support No | Safari iOS ? | Samsung Internet Android Full support Yes |
onactive | Chrome Full support 45 | Edge ? | Firefox ? | IE No support No | Opera ? | Safari ? | WebView Android Full support 45 | Chrome Android Full support 45 | Firefox Android ? | Opera Android No support No | Safari iOS ? | Samsung Internet Android ? |
onaddtrack | Chrome Full support 26 | Edge Full support 12 | Firefox Full support 50 | IE No support No | Opera No support No | Safari Full support Yes | WebView Android Full support 37 | Chrome Android Full support 26 | Firefox Android Full support 50 | Opera Android No support No | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
oninactive | Chrome Full support 45 | Edge ? | Firefox ? | IE No support No | Opera ? | Safari ? | WebView Android Full support 45 | Chrome Android Full support 45 | Firefox Android ? | Opera Android No support No | Safari iOS ? | Samsung Internet Android ? |
onremovetrack | Chrome Full support 26 | Edge Full support 12 | Firefox No support No | IE No support No | Opera No support No | Safari Full support Yes | WebView Android Full support 37 | Chrome Android Full support 26 | Firefox Android No support No | Opera Android No support No | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
removeTrack | Chrome Full support 26 | Edge Full support 12 | Firefox Full support Yes | IE No support No | Opera Full support Yes | Safari Full support Yes | WebView Android Full support 37 | Chrome Android Full support 26 | Firefox Android Full support Yes | Opera Android No support No | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
removetrack event | Chrome Full support Yes | Edge Full support 12 | Firefox No support No | IE No support No | Opera No support No | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android No support No | Opera Android No support No | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
stop | Chrome No support ? — 47 | Edge Full support 13 | Firefox ? | IE No support No | Opera No support No | Safari ? | WebView Android No support ? — 47 | Chrome Android No support ? — 47 | Firefox Android ? | Opera Android No support No | Safari iOS ? | Samsung Internet Android No support No |
Legend
- Full support
- Full support
- No support
- No support
- Compatibility unknown
- Compatibility unknown
- Experimental. Expect behavior to change in the future.
- Experimental. Expect behavior to change in the future.
- Deprecated. Not for use in new websites.
- Deprecated. Not for use in new websites.
- See implementation notes.
- See implementation notes.
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Stream API | 21webkit | nightly 18moz | ? | 12 | ? |
Feature | Android | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Stream API | 未实现 | ? | ? | 未实现 | 未实现 |
当前已经支持在Chrome,欧朋,和Firefox Nightly 18 浏览器使用WenRTC获取相机功能 。在Firefox Nightly 中启用WebRTC 需要你在配置中进行设置:
- 在地址栏中输入"about:config" ,在需要改变的地方设置为是
- 找到 "media.navigator.enabled" 的然后设置为true
See Also
- WebRTC - API 介绍页
- getUserMedia()
- Taking webcam photos - 关于使用
getUserMedia()
的演示