Skip to content

Instantly share code, notes, and snippets.

@thehunmonkgroup
Last active January 22, 2023 15:04

Revisions

  1. thehunmonkgroup revised this gist Sep 3, 2018. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions webrtchacks-example-global-stream.js
    Original file line number Diff line number Diff line change
    @@ -26,6 +26,7 @@ function makeVideoOnlyStreamFromExistingStream(stream) {
    function handleSuccess(stream) {
    var audioOnlyStream = makeAudioOnlyStreamFromExistingStream(stream);
    var videoOnlyStream = makeVideoOnlyStreamFromExistingStream(stream);
    // Do stuff with all the streams...
    }
    function handleError(error) {
    console.error('getUserMedia() error: ', error);
  2. thehunmonkgroup revised this gist Sep 3, 2018. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion webrtchacks-example-global-stream.js
    Original file line number Diff line number Diff line change
    @@ -28,7 +28,7 @@ function handleSuccess(stream) {
    var videoOnlyStream = makeVideoOnlyStreamFromExistingStream(stream);
    }
    function handleError(error) {
    console.error('navigator.getUserMedia error: ', error);
    console.error('getUserMedia() error: ', error);
    }
    var constraints = {
    audio: true,
  3. thehunmonkgroup revised this gist Sep 3, 2018. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions webrtchacks-example-global-stream.js
    Original file line number Diff line number Diff line change
    @@ -1,6 +1,7 @@
    /**
    * Illustrates how to clone and manipulate MediaStream objects.
    */

    function makeAudioOnlyStreamFromExistingStream(stream) {
    var audioStream = stream.clone();
    var videoTracks = audioStream.getVideoTracks();
  4. thehunmonkgroup revised this gist Sep 3, 2018. 1 changed file with 3 additions and 1 deletion.
    4 changes: 3 additions & 1 deletion webrtchacks-example-global-stream.js
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,6 @@
    // Demonstrates how to clone and manipulate MediaStream objects.
    /**
    * Illustrates how to clone and manipulate MediaStream objects.
    */
    function makeAudioOnlyStreamFromExistingStream(stream) {
    var audioStream = stream.clone();
    var videoTracks = audioStream.getVideoTracks();
  5. thehunmonkgroup created this gist Sep 3, 2018.
    35 changes: 35 additions & 0 deletions webrtchacks-example-global-stream.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,35 @@
    // Demonstrates how to clone and manipulate MediaStream objects.
    function makeAudioOnlyStreamFromExistingStream(stream) {
    var audioStream = stream.clone();
    var videoTracks = audioStream.getVideoTracks();
    for (var i = 0, len = videoTracks.length; i < len; i++) {
    audioStream.removeTrack(videoTracks[i]);
    }
    console.log('created audio only stream, original stream tracks: ', stream.getTracks());
    console.log('created audio only stream, new stream tracks: ', audioStream.getTracks());
    return audioStream;
    }

    function makeVideoOnlyStreamFromExistingStream(stream) {
    var videoStream = stream.clone();
    var audioTracks = videoStream.getAudioTracks();
    for (var i = 0, len = audioTracks.length; i < len; i++) {
    videoStream.removeTrack(audioTracks[i]);
    }
    console.log('created video only stream, original stream tracks: ', stream.getTracks());
    console.log('created video only stream, new stream tracks: ', videoStream.getTracks());
    return videoStream;
    }
    function handleSuccess(stream) {
    var audioOnlyStream = makeAudioOnlyStreamFromExistingStream(stream);
    var videoOnlyStream = makeVideoOnlyStreamFromExistingStream(stream);
    }
    function handleError(error) {
    console.error('navigator.getUserMedia error: ', error);
    }
    var constraints = {
    audio: true,
    video: true,
    };
    navigator.mediaDevices.getUserMedia(constraints).
    then(handleSuccess).catch(handleError);