test_multiple_mediastreamtracks.html (1419B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <title>Test the ability of MediaStream with multiple MediaStreamTracks</title> 5 <script src="/tests/SimpleTest/SimpleTest.js"></script> 6 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> 7 <script type="text/javascript" src="manifest.js"></script> 8 <script type="text/javascript" src="gUM_support.js"></script> 9 </head> 10 <body> 11 <pre id="test"> 12 <script class="testbody" type="text/javascript"> 13 async function startTest() { 14 try { 15 await setupGetUserMediaTestPrefs(); 16 let orgStream = await navigator.mediaDevices.getUserMedia({audio: true, video: true}); 17 let a = orgStream.getAudioTracks()[0]; 18 let v = orgStream.getVideoTracks()[0]; 19 let stream = new MediaStream([a, a, a, a, v, v, v].map(track => track.clone())); 20 let element = document.createElement("video"); 21 22 element.onloadedmetadata = function() { 23 is(stream.getAudioTracks().length, 4, 'Length of audio tracks should be 4.'); 24 is(stream.getVideoTracks().length, 3, 'Length of vudio tracks should be 3.'); 25 SimpleTest.finish(); 26 }; 27 28 element.srcObject = stream; 29 element.play(); 30 } catch (err) { 31 ok(false, 'Unexpected error fired with: ' + err); 32 SimpleTest.finish(); 33 } 34 } 35 36 SimpleTest.waitForExplicitFinish(); 37 SpecialPowers.pushPrefEnv( 38 { 39 "set": [ 40 ["media.track.enabled", true] 41 ] 42 }, startTest); 43 44 </script> 45 </pre> 46 </body> 47 </html>