首页 > 解决方案 > 我们可以在不重新协商的情况下在 webRTC 视频通话中动态删除和添加音频流吗

问题描述

我正在做一个 webRTC videoCall 应用程序。在某一点我需要一个语音记录(正常),所以我只是从 peerconnection 中删除了音轨,录制后我需要将音轨添加到 peerconnection 。但是我做不到!!

 public void removeAudioTrack() {

        List<RtpSender> senders = new ArrayList<>();
        senders.addAll(peerConnection.getSenders());

        try {
            for (RtpSender sender : senders) {
                if (sender.track() != null) {
                    if (sender.track().id().equals(AUDIO_TRACK_ID)) {
                        boolean flag = peerConnection.removeTrack(sender);
                        rtpSender = sender;                       
                    }

                }
            }
        } catch (Exception e) {

        }
}


 public void addAudioTrack() {

        localAudioTrack = createAudioTrack();
        mediaStream.addTrack(localAudioTrack);
        audioSender = peerConnection.addTrack(localAudioTrack,mediaStreamLabels);

}

音频声音没有进入另一侧(错误)

标签: javaandroidwebrtc

解决方案


根据webrtc-pc标准 - 您不能在不重新协商的情况下动态删除或添加流。但是,您可以替换轨道以将当前 RTCPSender 轨道替换为另一个轨道。根据webrtc-pc标准,这不需要重新协商。


推荐阅读