2 <body onload=
"RunTest();">
3 <div id=
"player_container"></div>
6 <script type=
"text/javascript">
7 // <audio> or <video> player element.
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();
18 document
.title
= 'FAILED';
22 function SeekTestStep(e
) {
23 player
.removeEventListener('ended', SeekTestStep
, false);
25 // Test completes on the next ended event.
26 InstallTitleEventHandler(player
, 'ended');
28 player
.currentTime
= 0.9 * player
.duration
;
32 function SeekTestTimeoutSetup() {
33 if (player
.currentTime
< 2)
36 player
.removeEventListener('timeupdate', SeekTestTimeoutSetup
, false);
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.
46 var url_parts
= window
.location
.href
.split('?');
47 if (url_parts
.length
!= 2)
50 var query_parts
= url_parts
[1].split('=');
51 if (query_parts
.length
!= 2)
54 var tag
= query_parts
[0];
55 var media_url
= query_parts
[1];
56 if (tag
!= 'audio' && tag
!= 'video')
59 // Create player and insert into DOM.
60 player
= document
.createElement(tag
);
61 player
.controls
= true;
62 document
.getElementById('player_container').appendChild(player
);
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);
69 // Ensure we percolate up any error events.
70 InstallTitleEventHandler(player
, 'error');
73 player
.src
= media_url
;