diff --git a/ogv.html b/ogv.html index 0a9c6df..c7aaf51 100644 --- a/ogv.html +++ b/ogv.html @@ -134,7 +134,7 @@ return (typeof MediaSource == 'function') && MediaSource.isTypeSupported(mime); } var vp9 = can('video/mp4; codecs="vp09.00.10.08"'); - var opus = can('audio/webm; codecs="opus"'); + var opus = can('audio/mp4; codecs="opus"'); var aac = can('audio/mp4; codecs="mp4a.40.02'); var mp3 = can('audio/mp3'); //var mp3 = can('audio/mp4; codecs="mp4a.40.34"'); @@ -155,10 +155,15 @@ } var webm = null; + var m3u8 = null; for (let source of hls1.querySelectorAll('source')) { if (source.type.startsWith('video/webm')) { webm = source; - break; + continue; + } + if (source.type == 'application/vnd.apple.mpegurl') { + m3u8 = source; + continue; } } @@ -185,25 +190,33 @@ hls1.classList.add('vjs-default-skin'); var vjs1 = videojs(hls1, playerConfig); - /* vjs1.on('error', function failover() { console.log('got error'); var error = vjs1.error(); if (error && error.code == MediaError.MEDIA_ERR_DECODE) { - console.log('saw its decode'); + console.log('saw its a decode error'); // HLS reports this if it can't find a codec it likes - if (webm) { - console.log('going to ' + webm.getAttribute('src')); + console.log(m3u8); + if (mse && m3u8) { + console.log('going to m3u8: ' + m3u8.getAttribute('src')); + vjs1.src([{ + src: m3u8.getAttribute('src'), + type: m3u8.getAttribute('type') + }]); + vjs1.reset(); + m3u8 = null; + } else if (webm) { + console.log('going to webm: ' + webm.getAttribute('src')); vjs1.src([{ src: webm.getAttribute('src'), type: webm.getAttribute('type') }]); vjs1.reset(); + webm = null; } } vjs1.off('error', failover); }); - */ // this fails on Chrome with a blob issue on the HLS player :D //vjs1.load();