<!doctype html> <html> <head> <title>Adding a track to an inactive MediaStream</title> <link rel="author" title="Dominique Hazael-Massieux" href="mailto:dom@w3.org"/> <link rel="help" href="http://w3c.github.io/mediacapture-main/getusermedia.html#widl-MediaStream-addTrack-void-MediaStreamTrack-track"> <link rel="help" href="http://w3c.github.io/mediacapture-main/getusermedia.html#widl-MediaStreamTrack-stop-void"> </head> <body> <p class="instructions">When prompted, accept to share your audio stream, then your video stream.</p> <h1 class="instructions">Description</h1> <p class="instructions">This test checks that adding a track to an inactive MediaStream is allowed.</p> <div id='log'></div> <script src=/resources/testharness.js></script> <script src=/resources/testharnessreport.js></script> <script src="/common/vendor-prefix.js" data-prefixed-objects='[{"ancestors":["navigator"], "name":"getUserMedia"}]'></script> <script> var t = async_test("Tests that adding a track to an inactive MediaStream is allowed", {timeout:20000}); t.step(function () { var audio, video; navigator.getUserMedia({audio:true}, gotAudio, function() {}); function gotAudio(stream) { audio = stream; navigator.getUserMedia({video:true}, gotVideo, function() {}); } function gotVideo(stream) { video = stream; t.step(function () { audio.getAudioTracks()[0].stop(); assert_false(audio.active, "audio stream is inactive after stopping its only audio track"); assert_true(video.active, "video stream is active"); audio.addTrack(video.getVideoTracks()[0]); audio.removeTrack(audio.getAudioTracks()[0]); }); t.done(); } }); </script> </body> </html>