这个问题通常发生在使用Android webrtc时,当尝试连接到ICE服务器时,会收到带有“Invalid transport parameter in ICE URI”消息的错误。这个错误通常是由于将错误的传输协议(例如“srtp”而不是“dtls”)添加到ICE URI中的传输参数中导致的。 解决此问题的最佳方法是确保在构建ROAP Offer SDP时,将适当的传输协议添加到ICE URI中的传输参数中。以下是一些示例代码,演示如何构建ROAP Offer SDP,并在其上添加正确的传输协议:
peerConnection.createOffer(new MediaConstraints(), new SdpObserver() {
@Override
public void onCreateSuccess(SessionDescription sdp) {
String sdpDescription = sdp.description;
sdpDescription = sdpDescription.replaceAll("a=rtcp:", "a=rtcp-mux\r\na=rtcp:");
sdpDescription += "a=ice-options:trickle\r\n";
sdpDescription += "a=fingerprint:sha-256 " + fingerprint + "\r\n";
sdpDescription += "a=setup:actpass\r\n";
sdpDescription += "a=mid:audio\r\n";
sdpDescription += "a=sendrecv\r\n";
sdpDescription += "a=rtcp-mux\r\n";
sdpDescription += "a=rtpmap:111 opus/48000/2\r\n";
sdpDescription += "a=rtcp-fb:111 nack\r\n";
sdpDescription += "a=rtcp-fb:111 nack pli\r\n";
sdpDescription += "a=rtcp-fb:111 ccm fir\r\n";
sdpDescription += "a=rtcp-fb:111 goog-remb\r\n";
sdpDescription += "a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\n";
sdpDescription += "a=extmap:3 http://www.we