Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / media / test / data / player.html
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   player.addEventListener('loadedmetadata', function(e) {
65     document.title = '' + player.videoWidth + ' ' + player.videoHeight;
66   });
67
68   // Transition to the seek test after X seconds of playback or when the ended
69   // event occurs, whichever happens first.
70   player.addEventListener('ended', SeekTestStep, false);
71   player.addEventListener('timeupdate', SeekTestTimeoutSetup, false);
72
73   // Ensure we percolate up any error events.
74   InstallTitleEventHandler(player, 'error');
75
76   // Starts the player.
77   player.src = media_url;
78   player.play();
79 }
80 </script>
81 </html>