| OLD | NEW |
| (Empty) |
| 1 <html> | |
| 2 <body onload="RunTest();"> | |
| 3 <div id="player_container"></div> | |
| 4 </body> | |
| 5 | |
| 6 <script type="text/javascript"> | |
| 7 // <audio> or <video> player element. | |
| 8 var player; | |
| 9 | |
| 10 // Listen for |event| from |element|, set document.title = |event| upon event. | |
| 11 function InstallTitleEventHandler(element, event) { | |
| 12 element.addEventListener(event, function(e) { | |
| 13 document.title = event.toUpperCase(); | |
| 14 }, false); | |
| 15 } | |
| 16 | |
| 17 function Failed() { | |
| 18 document.title = 'FAILED'; | |
| 19 return false; | |
| 20 } | |
| 21 | |
| 22 function SeekTestStep(e) { | |
| 23 player.removeEventListener('ended', SeekTestStep, false); | |
| 24 | |
| 25 // Test completes on the next ended event. | |
| 26 InstallTitleEventHandler(player, 'ended'); | |
| 27 | |
| 28 player.currentTime = 0.9 * player.duration; | |
| 29 player.play(); | |
| 30 } | |
| 31 | |
| 32 function SeekTestTimeoutSetup() { | |
| 33 if (player.currentTime < 2) | |
| 34 return; | |
| 35 | |
| 36 player.removeEventListener('timeupdate', SeekTestTimeoutSetup, false); | |
| 37 SeekTestStep(); | |
| 38 } | |
| 39 | |
| 40 // Uses URL query parameters to create an audio or video element using a given | |
| 41 // source. URL must be of the form "player.html?[tag]=[media_url]". Plays the | |
| 42 // media and waits for X seconds of playback or the ended event, at which point | |
| 43 // the test seeks near the end of the file and resumes playback. Test completes | |
| 44 // when the second ended event occurs or an error event occurs at any time. | |
| 45 function RunTest() { | |
| 46 var url_parts = window.location.href.split('?'); | |
| 47 if (url_parts.length != 2) | |
| 48 return Failed(); | |
| 49 | |
| 50 var query_parts = url_parts[1].split('='); | |
| 51 if (query_parts.length != 2) | |
| 52 return Failed(); | |
| 53 | |
| 54 var tag = query_parts[0]; | |
| 55 var media_url = query_parts[1]; | |
| 56 if (tag != 'audio' && tag != 'video') | |
| 57 return Failed(); | |
| 58 | |
| 59 // Create player and insert into DOM. | |
| 60 player = document.createElement(tag); | |
| 61 player.controls = true; | |
| 62 document.getElementById('player_container').appendChild(player); | |
| 63 | |
| 64 // Transition to the seek test after X seconds of playback or when the ended | |
| 65 // event occurs, whichever happens first. | |
| 66 player.addEventListener('ended', SeekTestStep, false); | |
| 67 player.addEventListener('timeupdate', SeekTestTimeoutSetup, false); | |
| 68 | |
| 69 // Ensure we percolate up any error events. | |
| 70 InstallTitleEventHandler(player, 'error'); | |
| 71 | |
| 72 // Starts the player. | |
| 73 player.src = media_url; | |
| 74 player.play(); | |
| 75 } | |
| 76 </script> | |
| 77 </html> | |
| OLD | NEW |