WebRTC Android使用Unified Plan时addStream报错,求解决方案
解决WebRTC Unified Plan下
addStream报错问题 错误原因
你使用的WebRTC 113版本默认启用Unified Plan SDP语义,而addStream是旧版Plan B的专属API,Unified Plan明确禁用了该方法,必须使用addTrack替代。
修正代码
将原有的addLocalStream方法替换为逐个添加媒体轨道的实现:
public void addLocalStream(MediaStream stream) { if (pc == null) return; Log.d("dds_test", "addLocalTracks from stream"); // 添加所有音频轨道 for (AudioTrack audioTrack : stream.getAudioTracks()) { pc.addTrack(audioTrack, stream); } // 添加所有视频轨道 for (VideoTrack videoTrack : stream.getVideoTracks()) { pc.addTrack(videoTrack, stream); } }
关键说明
- Unified Plan要求每个媒体轨道(音频/视频)单独通过
addTrack注册,不再支持批量添加整个MediaStream。 addTrack方法的第二个参数仍可传入原MediaStream,用于关联轨道和流的元数据,不影响功能逻辑。- 不建议切换回Plan B(通过修改
PeerConnectionFactory.Options中的sdpSemantics为SdpSemantics.PLAN_B),因为Plan B已被官方废弃,后续版本会彻底移除支持。
内容的提问来源于stack exchange,提问作者Zahid Yameen
相关产品推荐
相关产品推荐

