Skip to content

Commit

Permalink
Further streamline things.
Browse files Browse the repository at this point in the history
  • Loading branch information
sideshowbarker committed Mar 3, 2014
1 parent 2302560 commit 6f321cd
Showing 1 changed file with 19 additions and 53 deletions.
72 changes: 19 additions & 53 deletions media-source/interfaces.html
Original file line number Diff line number Diff line change
Expand Up @@ -107,46 +107,11 @@
</script>
<script>
"use strict";
try {
var idlArray = new IdlArray();
var mediaSource;
var sourceBuffer;
var sourceBufferList;
var video = document.createElement("video");
var videoPlaybackQuality;
test(function() {assert_true(typeof MediaSource != "undefined")},
'typeof MediaSource != "undefined"');
mediaSource = new MediaSource();
if ("getVideoPlaybackQuality" in HTMLVideoElement.prototype) {
videoPlaybackQuality = video.getVideoPlaybackQuality();
}
video.src = URL.createObjectURL(mediaSource);
mediaSource.addEventListener("sourceopen", function () {
var videoUri = "/resources/media/sunflower.webm"
var defaultType ='video/webm;codecs="vp8,vorbis"';
var checkVideo = document.createElement("video");
if (checkVideo.canPlayType &&
checkVideo.canPlayType(defaultType)) {
sourceBuffer = mediaSource.addSourceBuffer(defaultType);
} else {
videoUri = "/media/A4.mp4"
sourceBuffer = mediaSource.addSourceBuffer('video/mp4');
}
sourceBufferList = mediaSource.sourceBuffers;
fetch(videoUri, function (blob) {
var r = new FileReader();
r.addEventListener("load", function (e) {
sourceBuffer.appendBuffer(new Uint8Array(e.target.result));
sourceBuffer.addEventListener("updateend", function (e) {
try {
mediaSource.endOfStream();
video.play();
} catch(InvalidStateError) {
}
});
});
r.readAsArrayBuffer(blob);
});
var idlCheck = function() {
var idlArray = new IdlArray();
[].forEach.call(document.querySelectorAll("script[type=text\\/plain]"), function(node) {
if (node.className == "untested") {
idlArray.add_untested_idls(node.textContent);
Expand All @@ -157,24 +122,25 @@
idlArray.add_objects({
MediaSource: ['mediaSource'],
SourceBuffer: ['sourceBuffer'],
SourceBufferList: ['sourceBufferList'],
VideoPlaybackQuality: ['videoPlaybackQuality'],
SourceBufferList: ['mediaSource.sourceBuffers'],
VideoPlaybackQuality: ['video.getVideoPlaybackQuality()'],
});
idlArray.test();
});
} catch(e) {
console.dir(e);
}
function fetch(src, cb) {
var xhr = new XMLHttpRequest();
xhr.open("GET", src, true);
xhr.responseType = "blob";
xhr.addEventListener("load", function (e) {
if (xhr.status != 200) {
return false;
}
cb(xhr.response);
mediaSource = new MediaSource();
video.src = URL.createObjectURL(mediaSource);
mediaSource.addEventListener("sourceopen", function () {
var defaultType ='video/webm;codecs="vp8,vorbis"';
if (video.canPlayType && video.canPlayType(defaultType)) {
sourceBuffer = mediaSource.addSourceBuffer(defaultType);
} else {
sourceBuffer = mediaSource.addSourceBuffer('video/mp4');
}
sourceBuffer.addEventListener("updateend", function (e) {
mediaSource.endOfStream();
video.play();
idlCheck();
});
xhr.send();
};
sourceBuffer.appendBuffer(new ArrayBuffer());
});
</script>

0 comments on commit 6f321cd

Please sign in to comment.