无法在'RTCPeerConnection'上执行'setRemoteDescription':无法设置远程应答sdp

时间:2019-03-27 13:56:05

标签: javascript android webrtc phpwebsocket

我已经实现了WebRTC,用于通过浏览器进行视音频通话。我正在使用最新的<body ng-app="">。我也为本地android应用程序实现了WebRTC。我的信令服务器基于php WebSocket(Ratchet websocket)。当我在两种浏览器(chrome-chrome或chrome-firefox组合)中测试实现时,我发现该协议运行良好。我的意思是视音频通话正常。当我测试我的android应用程序时,我可以看到它也适用于应用程序与应用程序之间的通信。

但是问题是当我尝试从我的android应用程序向网络应用程序发出呼叫时,我看到setRemoteDescription无法正常工作,而是生成了以下错误:

adapter.js

在gradle(app)脚本中,我实现了WebRTC库,如下所示:

Failed to execute 'setRemoteDescription' on 'RTCPeerConnection': Failed to set remote answer sdp: Media section has more than one track specified with a=ssrc lines which is not supported with Unified Plan.

这就是为什么我认为最新的implementation 'org.webrtc:google-webrtc:1.0.+' (用于Web部件)和android库应该兼容,并且与Web实现和android实现之间的版本不兼容没有问题。

为了更好地理解,我在此共享在生成要约时发现的SDP消息。

adapter.js

2 个答案:

答案 0 :(得分:0)

您可以尝试:

rtcConfiguration.sdpSemantics = PeerConnection.SdpSemantics.PLAN_B;

出现错误:“媒体部分中有多个轨道用a = ssrc行指定, Unified Plan不支持。

Fwiw Unified计划是默认的(我认为),并且设置为

rtcConfiguration.sdpSemantics = PeerConnection.SdpSemantics.UNIFIED_PLAN;

答案 1 :(得分:0)

谢谢。它有效

if(getChromeVersion()>=72){ configuration.sdpSemantics = "unified-plan";} else { configuration.sdpSemantics = "plan-b";}