webrtc中音频3A处理开关配置
1 音频引擎初始化的时对3A处理进行设置
WebRtcVoiceEngine::Init media/engine/webrtc_voice_engine.h WebRtcVoiceEngine::ApplyOptions media/engine/webrtc_voice_engine.h modules/audio_processing/audio_processing_impl.h AudioProcessingImpl::ApplyConfig
2 创建audio source时设置3A参数
cricket::AudioOptions options; options.highpass_filter = true; options.echo_cancellation = true; options.auto_gain_control = true; options.noise_suppression = true; options.combined_audio_video_bwe = true; options.residual_echo_detector = true;//残余回音消除 rtc::scoped_refptr<webrtc::AudioSourceInterface> source = g_factory->CreateAudioSource(options); rtc::scoped_refptr<webrtc::AudioTrackInterface> trackPtr = g_factory->CreateAudioTrack(label, source); PeerConnection::AddTransceiver pc/peer_connection.h 关键参数: cricket::MediaType media_type, rtc::scoped_refptr<MediaStreamTrackInterface> track PeerConnection::CreateSender pc/peer_connection.h 关键参数: rtc::scoped_refptr<MediaStreamTrackInterface> track RtpSenderBase::SetTrack(MediaStreamTrackInterface* track) pc/rtp_sender.h AudioRtpSender::SetSend pc/rtp_sender.h 备注: 1获取track中source的配置(3A处理相关选项) 2 voice_media_channel()->SetAudioSend(ssrc_, track_enabled, &options, sink_adapter_.get()); WebRtcVoiceMediaChannel::SetAudioSend media/engine/webrtc_voice_engine.h WebRtcVoiceMediaChannel::SetOptions media/engine/webrtc_voice_engine.h WebRtcVoiceEngine::ApplyOptions media/engine/webrtc_voice_engine.h modules/audio_processing/audio_processing_impl.h AudioProcessingImpl::ApplyConfig