| <html> |
| <head> |
| <script src=media-file.js></script> |
| <script src=video-test.js></script> |
| <script> |
| var playingCount = 0; |
| var playThroughCount = 0; |
| var videos = []; |
| |
| function logEvent(evt) |
| { |
| consoleWrite("EVENT(" + evt.type + ")"); |
| } |
| |
| function playing(evt) |
| { |
| logEvent(evt); |
| ++playingCount; |
| |
| switch (playingCount) { |
| case 1: |
| consoleWrite("<br>*** Play the second video ***"); |
| run('videos[1].play()'); |
| break; |
| case 2: |
| consoleWrite("<br>*** Play the third video ***"); |
| run('videos[2].play()'); |
| break; |
| case 3: |
| consoleWrite("<br>*** Play the fourth video, the third should pause ***"); |
| run('videos[3].play()'); |
| break; |
| } |
| } |
| |
| function pause(evt) |
| { |
| logEvent(evt); |
| consoleWrite(""); |
| testExpected('videos[0].paused', false); |
| testExpected('videos[1].paused', false); |
| testExpected('videos[2].paused', true); |
| testExpected('videos[3].paused', false); |
| endTest(); |
| } |
| |
| function canplaythrough(evt) |
| { |
| logEvent(evt); |
| |
| if (++playThroughCount < 4) |
| return; |
| |
| consoleWrite(""); |
| |
| testExpected('videos[0].audioTracks.length', '0'); |
| testExpected('videos[1].audioTracks.length', '0'); |
| testExpected('videos[2].audioTracks.length', '1'); |
| testExpected('videos[3].audioTracks.length', '1') |
| |
| consoleWrite("<br>*** Play the first video ***"); |
| run('videos[0].play()'); |
| } |
| |
| function start() |
| { |
| if (!window.internals) { |
| failTest('This test requires window.internals.'); |
| return; |
| } |
| |
| run("internals.setMediaSessionRestrictions('videoaudio', 'ConcurrentPlaybackNotPermitted')"); |
| run("internals.setMediaSessionRestrictions('video', '')"); |
| |
| videos = document.getElementsByTagName('video'); |
| for (var i = 0; i < videos.length; ++i) { |
| video = videos[i]; |
| video.addEventListener("canplaythrough", canplaythrough); |
| video.addEventListener('playing', playing); |
| video.addEventListener('pause', pause); |
| run(`videos[${i}].src = findMediaFile("video", "${ i < 2 ? "content/test-video-only" : "content/test" }")`); |
| } |
| consoleWrite(""); |
| } |
| </script> |
| </head> |
| |
| <body onload="start()"> |
| <video controls id="one"></video> |
| <video controls id="two"></video> |
| <video controls id="three"></video> |
| <video controls id="four"></video> |
| <p>Test play() of multiple video elements when some are of a type that allows concurrent playback and others are not.</p> |
| </body> |
| </html> |