addSourceBuffer()
方法在
MediaSource
interface creates a new
SourceBuffer
为给定
MIME 类型
and adds it to the
MediaSource
's
sourceBuffers
list. The new
SourceBuffer
is also returned.
var sourceBuffer = mediaSource.addSourceBuffer(mimeType);
mimeType
DOMString
specifying the MIME type of the
SourceBuffer
to create and add to the
MediaSource
.
A
SourceBuffer
object representing the new source buffer that has been created and added to the media source.
InvalidAccessError
mimeType
is an empty string rather than a valid MIME type.
InvalidStateError
MediaSource
is not in the
"open"
readyState
.
NotSupportedError
mimeType
isn't supported by the
用户代理
, or is not compatible with the MIME types of other
SourceBuffer
objects that are already included in the media source's
sourceBuffers
列表。
QuotaExceededError
SourceBuffer
objects, or creating a new
SourceBuffer
使用给定
mimeType
would result in an
unsupported configuration of
SourceBuffer
s
.
The following snippet is from a simple example written by Nick Desaulniers ( view the full demo live ,或 download the source for further investigation.)
var assetURL = 'frag_bunny.mp4';
// Need to be specific for Blink regarding codecs
// ./mp4info frag_bunny.mp4 | grep Codec
var mimeCodec = 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"';
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);
});
};
| 规范 | 状态 | 注释 |
|---|---|---|
|
媒体源扩展
The definition of 'addSourceBuffer()' in that specification. |
推荐 | 初始定义。 |
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
addSourceBuffer
|
Chrome 23 | Edge 12 |
Firefox
42
|
IE 11 | Opera 15 | Safari 8 | WebView Android 4.4.3 | Chrome Android 25 | Firefox Android 41 | Opera Android 14 | Safari iOS 不支持 No | Samsung Internet Android 1.5 |
完整支持
不支持
实验。期望将来行为有所改变。
见实现注意事项。
用户必须明确启用此特征。
MediaSource