问题描述
我正在使用本机Android WebRTC库实现VoIP。我设法从Android应用程序向浏览器发出了呼叫。我可以按预期听和说。但是,当我尝试从浏览器呼叫到Android应用程序时,无法在连接的线路上听到或讲话。创建peerConnection
,setRemoteDescription
,setLocalDescription
,创建Answer
都(按理)按预期进行。
PS:当我拨打电话时,我在Android设备顶部看到一个小图标,表示正在使用麦克风。但是接到电话时,我看不到任何类似的东西。
我想知道是否有人可以帮助我了解
- 创建Answer后设置为LocalDescription的
sdp
是否需要IP地址和包含的ICE候选者?如果是,请问如何添加它们,因为我看不到ICE候选者,并且IP地址为0.0.0.0 IP4 - 除了使用标准的本机WebRTC库之外,我是否还需要做其他特定的事情来处理麦克风和扬声器。
解决方法
对于那些面临类似问题的人,这是我找到的解决方案。
在createAnswer()
之后创建并被设置为LocalDescription的SDP中,我发现该值为m=audio 0...
。这听起来不正确。另外,它在SDP中丢失a=setup:active
。
经过大量调试,我发现这些标志
在创建PeerConnectionFactory时将options.disableEncryption = true
和options.disableNetworkMonitor = true
设置为选项将停止音频。
因此删除这些标志解决了我的问题。