WebRTC一般用於語音通信,但有時候也要傳輸音樂,這個時候對音質要求就比較高了,可以進行如下設置:
- 設置JavaAudioDeviceModule爲立體聲,設置回聲消除和噪音消除爲false,設置採樣率爲48000。
AudioDeviceModule audioDeviceModule= JavaAudioDeviceModule.builder(context)
.setUseStereoInput(true)
.setUseStereoOutput(true)
.setUseHardwareNoiseSuppressor(false)
.setUseHardwareAcousticEchoCanceler(false)
.setSampleRate(48000)
.createAudioDeviceModule();
- 在本地SDP和遠程SDP的opus參數中設置立體聲(stereo)和最大比特率(maxaveragebitrate),例如:
a=fmtp:111 minptime=10;useinbandfec=1;stereo=1;sprop-stereo=1;maxaveragebitrate=120000
- 設置AudioSource中的回聲消除和噪音消除爲false。
private MediaConstraints createAudioConstraints() {
MediaConstraints audioConstraints=new MediaConstraints();
audioConstraints.optional.add(
new MediaConstraints.KeyValuePair("googNoiseSuppression", "false"));
audioConstraints.optional.add(
new MediaConstraints.KeyValuePair("googEchoCancellation", "false"));
audioConstraints.optional.add(
new MediaConstraints.KeyValuePair("echoCancellation", "false"));
audioConstraints.optional.add(
new MediaConstraints.KeyValuePair("googEchoCancellation2", "false"));
audioConstraints.optional.add(
new MediaConstraints.KeyValuePair(
"googDAEchoCancellation", "false"));
return audioConstraints;
}