35 lines
1 KiB
JavaScript
35 lines
1 KiB
JavaScript
// META: script=/resources/WebIDLParser.js
|
|
// META: script=/resources/idlharness.js
|
|
// META: timeout=long
|
|
|
|
// https://w3c.github.io/media-source/
|
|
|
|
'use strict';
|
|
|
|
idl_test(
|
|
['media-source'],
|
|
['dom', 'html', 'url'],
|
|
async idl_array => {
|
|
idl_array.add_objects({
|
|
MediaSource: ['mediaSource'],
|
|
SourceBuffer: ['sourceBuffer'],
|
|
SourceBufferList: ['mediaSource.sourceBuffers'],
|
|
});
|
|
|
|
const video = document.createElement('video');
|
|
self.mediaSource = new MediaSource();
|
|
video.src = URL.createObjectURL(mediaSource);
|
|
|
|
self.sourceBuffer = await new Promise((resolve, reject) => {
|
|
mediaSource.addEventListener('sourceopen', () => {
|
|
var defaultType = 'video/webm;codecs="vp8,vorbis"';
|
|
if (MediaSource.isTypeSupported(defaultType)) {
|
|
resolve(mediaSource.addSourceBuffer(defaultType));
|
|
} else {
|
|
resolve(mediaSource.addSourceBuffer('video/mp4'));
|
|
}
|
|
});
|
|
step_timeout(() => reject(new Error('sourceopen event not fired')), 3000);
|
|
});
|
|
}
|
|
);
|