Я реализовал вариант видеоконференции в своем приложении, используя следующий пример: https://github.com/androidthings/sample-videoRTC
в основном это работает очень хорошо, но у меня есть одна серьезная проблема. громкость крика очень-очень низкая, даже когда я выставляю максимальную громкость на своем устройстве.
Я попытался проверить, есть ли какой-либо параметр, определяющий громкость звука, но мне не удалось найти такие параметры, кроме AudioBitRate(=32) и AudioCodec=("OPUS").
Вот параметры, которые я использую для создания peerConnection:
peerConnectionParameters =
new PeerConnectionClient.PeerConnectionParameters(true,
false,
false,
videoWidth,
videoHeight,
0,
Integer.parseInt(getString(R.string.pref_maxvideobitratevalue_default)),
getString(R.string.pref_videocodec_default),
true,
false,
Integer.parseInt(getString(R.string.pref_startaudiobitratevalue_default)),
getString(R.string.pref_audiocodec_default),
false,
false,
false,
false,
false,
false,
false,
false,
null);
Кто-нибудь знает, как я могу улучшить громкость звука?
Я попытался заменить аудиокодек по умолчанию, но результат был таким же низким.
После многих проверок и исследований я нашел проблему. Я отвечаю здесь, если у кого-то еще будет такая же проблема.
я заметил, что голос направляется не на динамик, а на ушную шапку... поэтому я добавляю приведенный ниже код, чтобы включить динамик, и проблема решена!
audioManager = (AudioManager) this.activity.getSystemService(Context.AUDIO_SERVICE);
audioManager.setSpeakerphoneOn(true);
audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
Чтобы ответить на вопрос, куда я поместил код, я фактически добавил новый значок, чтобы пользователь мог переключаться между гарнитурой и динамиком.
вот полный код:
toggleSpeakerHeadset.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (speakerOn) {
setHeadsetOn();
} else {
setSpeakerOn();
}
}
});
private void setSpeakerOn() {
speakerOn = true;
toggleSpeakerHeadset.setImageResource(R.drawable.headset);
audioManager.setSpeakerphoneOn(true);
audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
}
private void setHeadsetOn() {
speakerOn = false;
toggleSpeakerHeadset.setImageResource(R.drawable.speaker);
audioManager.setSpeakerphoneOn(false);
audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
}
это должно быть размещено после запроса разрешения и до начала вызова
У меня такая же проблема с моим приложением. Я хотел спросить, где я должен разместить этот код?