--- title: MediaSource.readyState slug: Web/API/MediaSource/readyState translation_of: Web/API/MediaSource/readyState ---
readyState
是 {{domxref("MediaSource")}} 接口的一个只读属性。它返回一个集合表明当前MediaSource
的状态。它有三种可能的返回值:
closed
: 当前源并未附着到一个media元素上。open
: 当前源已附着到一个media元素并准备好接收 {{domxref("SourceBuffer")}} 对象。ended
: 当前源已附着到一个media元素,但流已被{{domxref("MediaSource.endOfStream()")}}结束。var myReadyState = mediaSource.readyState;
A {{domxref("DOMString")}}.
The following snippet is from a simple example written by Nick Desaulniers (view the full demo live, or download the source for further investigation.)
if ('MediaSource' in window && MediaSource.isTypeSupported(mimeCodec)) {
var mediaSource = new MediaSource;
//console.log(mediaSource.readyState); // closed
video.src = URL.createObjectURL(mediaSource);
mediaSource.addEventListener('sourceopen', sourceOpen);
} else {
console.error('Unsupported MIME type or codec: ', mimeCodec);
}
function sourceOpen (_) {
//console.log(this.readyState); // open
var mediaSource = this;
var sourceBuffer = mediaSource.addSourceBuffer(mimeCodec);
fetchAB(assetURL, function (buf) {
sourceBuffer.addEventListener('updateend', function (_) {
mediaSource.endOfStream();
video.play();
//console.log(mediaSource.readyState); // ended
});
sourceBuffer.appendBuffer(buf);
});
};
Specification | Status | Comment |
---|---|---|
{{SpecName('Media Source Extensions', '#widl-MediaSource-readyState', 'readyState')}} | {{Spec2('Media Source Extensions')}} | Initial definition. |
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|---|
Basic support | 23 | {{CompatVersionUnknown}} | {{CompatGeckoDesktop("25.0")}}[1] {{CompatGeckoDesktop("42.0")}} |
11[2] | 15 | 8 |
Feature | Android | Edge | Firefox Mobile (Gecko) | Firefox OS (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|
Basic support | 4.4.4 | {{CompatVersionUnknown}} |
{{CompatNo}} |
{{CompatNo}} | 11 | 30 | {{CompatNo}} |
[1] Available after switching the about:config
preference media.mediasource.enabled
to true
. In addition, support was limited to a whitelist of sites, for example YouTube, Netflix, and other popular streaming sites. The whitelist was removed and Media Source Extensions was enabled by default in 42+ for all sites.
[2] Only works on Windows 8+.