mediasource-play-then-seek-back.html (2258B)
1 <!DOCTYPE html> 2 <!-- Copyright © 2016 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). --> 3 <html> 4 <head> 5 <title>Simple MediaSource playback & seek test case.</title> 6 <script src="/resources/testharness.js"></script> 7 <script src="/resources/testharnessreport.js"></script> 8 <script src="mediasource-util.js"></script> 9 </head> 10 <body> 11 <div id="log"></div> 12 <script> 13 14 mediasource_testafterdataloaded(function(test, mediaElement, mediaSource, segmentInfo, sourceBuffer, mediaData) 15 { 16 17 mediaElement.play(); 18 // Append all the segments 19 test.expectEvent(sourceBuffer, 'updateend', 'sourceBuffer'); 20 test.expectEvent(mediaElement, 'playing', 'Playing triggered'); 21 sourceBuffer.appendBuffer(mediaData); 22 23 function confirmPlayThenEnd() 24 { 25 test.waitForCurrentTimeChange(mediaElement, function () 26 { 27 assert_greater_than(mediaElement.currentTime, 0.0, 'Playback has started after seek.'); 28 test.done(); 29 }); 30 } 31 32 function finishSeekThenPlay() 33 { 34 test.expectEvent(mediaElement, 'seeked', 'mediaElement finished seek'); 35 36 test.waitForExpectedEvents(confirmPlayThenEnd); 37 } 38 39 function delayedPlayHandler() 40 { 41 assert_greater_than(mediaElement.currentTime, 0.0, 'Playback has started.'); 42 test.expectEvent(mediaElement, 'seeking', 'mediaElement'); 43 mediaElement.currentTime = 0.0; 44 assert_true(mediaElement.seeking, 'mediaElement is seeking'); 45 46 test.waitForExpectedEvents(finishSeekThenPlay); 47 } 48 49 test.waitForExpectedEvents(function() 50 { 51 test.waitForCurrentTimeChange(mediaElement, delayedPlayHandler); 52 }); 53 54 }, 'Test playing then seeking back.'); 55 </script> 56 </body> 57 </html>