是否可以使用libjingle提供的API禁用所有音频处理?
我试图在OS X上使用libjingle_peerconnection CocoaPod为音频流设置媒体约束。这些约束通常会在JavaScript中传递给getUserMedia()
。我的目标是将几个参数设置为false
,以基本上禁用所有音频处理。
let audioPairs = [
RTCPair(key: "echoCancellation", value: "false"),
RTCPair(key: "googEchoCancellation", value: "false"),
RTCPair(key: "googEchoCancellation2", value: "false"),
RTCPair(key: "googAutoGainControl", value: "false"),
RTCPair(key: "googAutoGainControl2", value: "false"),
RTCPair(key: "googNoiseSuppression", value: "false"),
RTCPair(key: "googHighpassFilter", value: "false"),
RTCPair(key: "googTypingNoiseDetection", value: "false"),
RTCPair(key: "googAudioMirroring", value: "false")
]
let audioConstraints = RTCMediaConstraints(mandatoryConstraints: [RTCPair](), optionalConstraints: audioPairs)
我试过了:
RTCPeerConnectionFactory.peerConnectionWithICEServers(_, constraints, delegate)
RTCPeerConnection.createAnswerWithDelegate(_, constraints)
然而,没有任何限制被尊重。音频处理仍然发生。强制执行约束会导致应答/提供握手期间出现故障(因为它们不被允许作为强制参数)。
我觉得我应该将这些约束传递给类似RTCPeerConnectionFactory.mediaStreamWithLabel(_)
或RTCPeerConnectionFactory.audioTrackWithID(_)
的内容,但此时没有用于传递约束的API。曾经有一个名为RTCPeerConnection.addStream(_, constraints)
的方法,但约束参数已被删除。