我正在构建一个android应用程序,应该能够与另一个基于libjingle构建的客户端进行音频通信。
我尝试做的第一件事是在“另一个”客户端和我的android应用程序之间建立一个呼叫。我们使用XMPP作为信令服务。
所以在这之后:
peerConnectiobObj.setRemoteDescription(sdp)我得到了成功的回调(所以我猜远程描述没问题吧?)然后根据我认为的,我已经找到了我创造答案的时候了。
@Override
public void onCreateSuccess(SessionDescription sessionDescription)
{
peerConnectiobObj.createAnswer(theSDPobserver, MediaConstraints);
}但是我在错误回调中结束了:(
@Override
public void onSetFailure(String s)
{
}S告诉我在哪里
Failed to set local answer sdp: Session error code: ERROR_CONTENT. Session error description: Failed to setup SRTP filter..我感到迷失,我甚至不知道那是什么意思。如果有人能给我指出正确的方向,我会是一个更快乐的开发人员。
实际上,当谈到这件事的时候,我总觉得有点迷茫..:)
编辑:
这是我到达OnSetFailure时本地SDP的样子(字符串s)
v=0
o=- 8493684831531207397 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE audio
a=msid-semantic: WMS
m=audio 1 RTP/SAVPF 0
c=IN IP4 0.0.0.0
a=rtcp:1 IN IP4 0.0.0.0
a=ice-ufrag:kOkIsQjMk2B0a9U4
a=ice-pwd:tofHiOCYA8vxc6RhGijvAJhD
a=mid:audio
a=recvonly
a=rtcp-mux
a=crypto:0 AES_CM_128_HMAC_SHA1_80 inline:CuhhoTjgAvZWACKU0enZ6JkBOOtm1XcILVU1kgha
a=rtpmap:0 PCMU/8000编辑:我更新了我的libjingle.jar和.so,用当前的主干重新编译。不能成功createAnswer()
但当我这么做的时候
setLocalDescription()我得到了public void onSetFailure(String s) CB
这是我到达该状态时的本地SDP:
v=0
o=- 5609339699751423572 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE audio
a=msid-semantic: WMS fAy0FNrYIDVfeRwX5X0IK5TOCVTNJOXt4Cdb
m=audio 1 RTP/SAVPF 0
c=IN IP4 0.0.0.0
a=rtcp:1 IN IP4 0.0.0.0
a=ice-ufrag:HvkTUFYLQHFQYV1a
a=ice-pwd:OtBToOqg56IROXkI1zpljupo
a=mid:audio
a=sendrecv
a=rtcp-mux
a=crypto:0 AES_CM_128_HMAC_SHA1_80 inline:hMJUMLPuM1zYuIaUCEjr46aMsMwfc+MHjBM6PDES
a=rtpmap:0 PCMU/8000
a=ssrc:4099416672 cname:DO5g7daVh6dqHm/E
a=ssrc:4099416672 msid:fAy0FNrYIDVfeRwX5X0IK5TOCVTNJOXt4Cdb fAy0FNrYIDVfeRwX5X0IK5TOCVTNJOXt4Cdb00
a=ssrc:4099416672 mslabel:fAy0FNrYIDVfeRwX5X0IK5TOCVTNJOXt4Cdb
a=ssrc:4099416672 label:fAy0FNrYIDVfeRwX5X0IK5TOCVTNJOXt4Cdb00有谁知道它出了什么问题吗?
发布于 2015-07-22 13:30:34
尝试在创建peerConnection时更改约束
新的pcConstraints = MediaConstraints MediaConstraints();
pcConstraints.optional.add(new KeyValuePair("DtlsSrtpKeyAgreement","true"));pcConstraints.optional.add(new KeyValuePair("RtpDataChannels","true"));peerConnectionFactory.createPeerConnection(config,pcConstraints,new PcObserver();
https://stackoverflow.com/questions/26022790
复制相似问题