android - 无法设置远程报价 sdp : Called with SDP without SDES crypto

标签 android webrtc libjingle dtls

尝试将 Android 应用程序用于基于 APPRtcDemo 的 WebRTC。 从 Chrome 34 连接时,一切正常,但是当我使用 Chrome 35 进行视频通话时,出现此错误。

 onSetFailure: Failed to set remote offer sdp: Called with SDP without SDES crypto.

这里是我正在尝试使用的媒体限制

sdpMediaConstraints = new MediaConstraints();
sdpMediaConstraints.mandatory.add(new MediaConstraints.KeyValuePair("OfferToReceiveAudio", "true"));        
sdpMediaConstraints.mandatory.add(new MediaConstraints.KeyValuePair("OfferToReceiveVideo", "true"));
sdpMediaConstraints.optional.add(new MediaConstraints.KeyValuePair("DtlsSrtpKeyAgreement", "true"));

这里是代码设置远程描述

    pc.setRemoteDescription(sdpObserver, new SessionDescription(
            SessionDescription.Type.OFFER, description.toString()));

最佳答案

通过在 Peerconnection 对象的创建中添加约束来解决此问题。

DtlsSrtpKeyAgreement:true


pc = factory.createPeerConnection(iceServers, constraints, pcObserver);

其中 constraints 具有 DtlsSrtpKeyAgreement:true 键值。

关于android - 无法设置远程报价 sdp : Called with SDP without SDES crypto,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24062340/

相关文章:

android - 如何管理 onTouchListener 从 ACTION_MOVE 事件返回值,就像我想在调用 ACTION_MOVE 事件时更改(true 或 false)返回值

ios - 来自 iPhone X 和 iPhone 8 的 WebRTC 视频伪像

ios - libjingle iOS : Don't ask for mic permission

c++ - 调用应用程序 libjingle,用户自动从名册中删除。为什么?

java - 使用 ConstraintSet 设置 View

android - 蓝牙 GATT - onServicesDiscovered(BluetoothGatt gatt, int status) 不包含所有服务

java - 从 native 函数(c++、jni)返回一个 int 会使应用程序崩溃

javascript - 部署站点时,我无权访问 navigator.mediaDevices。我该如何解决?

javascript - 同时发出 chirp 和 WebRTC - 无回声消除

android - 原生 Android WebRTC 应用开发