WebRTC:在通话时将观看视频静音时查看自我视图

时间:2015-04-27 18:25:17

标签: webrtc

目前,通过将视频曲目的已启用属性设置为false,可实现webrtc中的视频静音功能

stream.getVideoTracks().forEach(function (track) {
    track.enabled = false;
});

但是上面的代码不仅会使传出的视频静音,而且使用该本地流渲染的本地自我视图也会获得黑帧。 有没有办法,只能将传出的视频帧静音,但仍能显示本地自我视图?

1 个答案:

答案 0 :(得分:2)

还没有简单的方法。浏览器支持MediaStreamTrack.clone()后,您可以克隆视频轨道以获得具有可单独控制的静音属性的第二个实例,并将一个轨道发送到您的自我视图,另一个轨道发送到peerConnection。这样您就可以在本地和远程独立关闭视频。

今天,我所知道的唯一解决方法是在Chrome上调用两次getUserMedia(至少应该使用https,权限将被保留,以便用户不会被提示两次)这会让你获得两条曲目你可以独立地进行视频静音,或者在Firefox上你可以使用RTCRtpSender.replaceTrack()和第二个"假的"来自getUserMedia的视频流使用非标准{ video: true, fake: true }约束like this