test_getUserMedia_loadedmetadata.html (1161B)
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 in media element should have video dimensions on loadedmetadata", 11 bug: "1240478" 12 }); 13 /** 14 * Tests that assigning a stream to a media element results in the 15 * "loadedmetadata" event without having to play() the media element. 16 * 17 * Also makes sure that the video size has been set on "loadedmetadata". 18 */ 19 runTest(function () { 20 var v = document.createElement("video"); 21 document.body.appendChild(v); 22 v.preload = "metadata"; 23 24 var constraints = {video: true, audio: true}; 25 return getUserMedia(constraints).then(stream => new Promise(resolve => { 26 v.srcObject = stream; 27 v.onloadedmetadata = () => { 28 isnot(v.videoWidth, 0, "videoWidth shall be set on 'loadedmetadata'"); 29 isnot(v.videoHeight, 0, "videoHeight shall be set on 'loadedmetadata'"); 30 resolve(); 31 }; 32 }) 33 .then(() => stream.getTracks().forEach(t => t.stop()))); 34 }); 35 36 </script> 37 </pre> 38 </body> 39 </html>