webrtc视频流停止共享

new*_*per 5 webrtc

我创建了基于webrtc的视频聊天suing peerjs.

使用控件创建本地和远程视频元素:

local:'video id = [local_peer_id] autoplay ="true" controls ="true" >'

remote:和'video id = [remote_peer_id] autoplay ="true" controls ="true ">'

现在在视频聊天期间,如果本地用户静音auido远程用户听不到任何东西,其工作完美.

问题在于视频.如果本地用户暂停他自己的视频,他可以看到视频暂停,但远程用户仍然可以看到他的视频直播.

另一方面,如果远程用户暂停他的视频,本地用户仍然可以看到他的视频直播.

任何人都告诉我们需要做些什么才能部署这个特性

"暂停"和"恢复"视频对两个同行都是实时的?

nak*_*kib 11

您需要知道HTML标记和WebRTC流之间的区别......

您可以让流运行,而不将它们附加到任何HTML标记,并且每个对等方仍然可以发送和接收媒体.因此,每个对等体都可以将流附加到音频/视频标签,并且标签仅用作用于播放已在运行的流的播放器.

因此,如果您将HTML标记静音,则只会使播放器静音,而不是流.如果你想让任何东西对另一个对等体产生影响,你需要在流或对等连接上做一些事情.

特别是,要静音和恢复音频或视频,您需要切换媒体流中的媒体轨道

    // create a button to toggle video 
    var button = document.createElement("button");
    button.appendChild(document.createTextNode("Toggle Hold"));

    button.onclick = function(){
        mediaStream.getVideoTracks()[0].enabled =
         !(mediaStream.getVideoTracks()[0].enabled);
    }
Run Code Online (Sandbox Code Playgroud)

要暂停/恢复音频,请改用getAudioTracks().

  • 根据MDN文档,启用是只读的:https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack/enabled如何立即暂停和恢复曲目? (2认同)

Ron*_*lev 5

呼叫mediaStream.stop()将停止摄像头,您在呼叫时获得的流
在哪里mediaStreamgetUserMedia

这是一个工作示例

  • 它已被弃用,在 47 中它不起作用。http://stackoverflow.com/questions/34966809/stop-kill-webrtc-media-stream (3认同)