| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <title>Media Source Player</title> | |
| </head> | |
| <body onload="runTest();"> | |
| <video controls></video> | |
| <script src='eme_player_js/app_loader.js' type='text/javascript'></script> | |
| <script type="text/javascript"> | |
| var video = document.querySelector('video'); | |
| function onTimeUpdate() { | |
| video.removeEventListener('timeupdate', onTimeUpdate); | |
| video.currentTime = 0.9 * video.duration; | |
| } | |
| function onSeeked() { | |
| video.removeEventListener('ended', Utils.failTest); | |
| Utils.installTitleEventHandler(video, 'ended'); | |
| } | |
| // For those streams whose start time is greater than | |
| // kSeekToStartFudgeRoom defined in source_buffer_stream.cc, we | |
| // need to skip those time range. Otherwise it won't play | |
| function onLoadedMetaData() { | |
| var buf = video.buffered; | |
| if (buf.length > 0) { | |
| video.currentTime = buf.start(0); | |
| } | |
| } | |
| // The test completes after media starts playing, seeks to 0.9 of | |
| // duration and fires the ended event. | |
| // The test stops when an error or ended event fire unexpectedly. | |
| function runTest() { | |
| var testConfig = new TestConfig(); | |
| testConfig.loadQueryParams(); | |
| Utils.installTitleEventHandler(video, 'error'); | |
| video.addEventListener('ended', Utils.failTest); | |
| video.addEventListener('seeked', onSeeked); | |
| video.addEventListener('timeupdate', onTimeUpdate); | |
| video.addEventListener('loadedmetadata', onLoadedMetaData); | |
| var source = MediaSourceUtils.loadMediaSourceFromTestConfig(testConfig); | |
| video.src = window.URL.createObjectURL(source); | |
| video.play(); | |
| } | |
| </script> | |
| </body> | |
| </html> |