test_getUserMedia_basicVideo_playAfterLoadedmetadata.html (1252B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <script type="application/javascript" src="mediaStreamPlayback.js"></script> 5 </head> 6 <body> 7 <pre id="test"> 8 <script type="application/javascript"> 9 createHTML({ 10 title: "getUserMedia Basic Video shall receive 'loadedmetadata' without play()ing", 11 bug: "1149494" 12 }); 13 /** 14 * Run a test to verify that we will always get 'loadedmetadata' from a video 15 * HTMLMediaElement playing a gUM MediaStream. 16 */ 17 runTest(() => { 18 var testVideo = createMediaElement('video', 'testVideo'); 19 var constraints = {video: true}; 20 21 return getUserMedia(constraints).then(stream => { 22 var playback = new MediaStreamPlayback(testVideo, stream); 23 var video = playback.mediaElement; 24 25 video.srcObject = stream; 26 return new Promise(resolve => { 27 ok(playback.mediaElement.paused, 28 "Media element should be paused before play()ing"); 29 video.addEventListener('loadedmetadata', function() { 30 ok(video.videoWidth > 0, "Expected nonzero video width"); 31 ok(video.videoHeight > 0, "Expected nonzero video width"); 32 resolve(); 33 }); 34 }) 35 .then(() => stream.getTracks().forEach(t => t.stop())); 36 }); 37 }); 38 39 </script> 40 </pre> 41 </body> 42 </html>