远程媒体流不可用,webrtc和kurento媒体流

问题描述 投票:-1回答:1

我以https://doc-kurento.readthedocs.io/en/6.13.2/tutorials/java/tutorial-groupcall.html开始

[当前,在用户界面中,我给用户选项以决定他们是否只希望音频或音频+视频通话。基于选择,将传递getUserMedia()的约束,如果所有用户都选择相同的呼叫类型,则此方法可以正常工作。

但是,假设用户1仅选择音频,而用户2选择音频+视频,然后用户1从​​用户2接收音频,而在用户2端,html视频元素将继续加载。

发现:我相信这是SDP报价问题,因为用户1的报价和用户2的相应SDP答复不包含m =视频,因为用户1仅选择了音频通话(此方法很好)

但是,来自用户2的报价和来自用户1的相应SDP答案确实包含m =视频。

所以,我想要的是,即使用户2选择了视频通话,用户2也会从1接收音频。

java webrtc kurento
1个回答
0
投票

您的流同时具有音频和视频轨道。由于某种原因,在这种情况下html video元素不会播放音频,因为它没有获取视频,而只是获取音频(因为另一个人禁用了视频)。有两种修复方法。

  1. 通过处理mediaStream进行修复。您可以创建一个在用户禁用视频后仅包含音轨的mediaStream。

    const audioStream = new MediaStream(); mediaStream.addTrack(originalStream.getAudioTracks()[0]); /* display audioStream in video element*/

  2. 通过生成sdp固定到正确的mediaConstraints使用mediaConstraints创建{audio:true,video:false}时,可以通过将WebRtcPeer传递为kurentoUtils来生成sdp。这样就可以获取音轨。

© www.soinside.com 2019 - 2024. All rights reserved.