Android громкость звукового сигнала, генерируемого ToneGenerator
Я использую ToneGenarator для воспроизведения непрерывного звукового сигнала. Проблема в том, что громкость слишком низкая!
Мы ничего не слышим, когда громкость ниже 8. А при максимальной громкости он совсем не громкий...
Это ограничение звука DTMF или я что-то не так делаю?
Вот код:
private final int TONE_TYPE = ToneGenerator.TONE_DTMF_5;
private final int STREAM = AudioManager.STREAM_MUSIC;
private final int DOT_TIME = 3;
public SoundManager(Activity anActivity) {
audio = (AudioManager) anActivity
.getSystemService(Context.AUDIO_SERVICE);
generator = new ToneGenerator(STREAM,
audio.getStreamMaxVolume(STREAM));
}
private void playBeep() {
generator.startTone(TONE_TYPE, DOT_TIME);
}
1 ответ
Решение
Я нашел, где проблема была:
ToneGenerator
занимает объем от 0 до 100, а объем потока - от 0 до 15. Таким образом, audio.getStreamMaxVolume(STREAM)
дает 15 из 100, это низко...
Используйте этот, для использования текущего объема системы.
ToneGenerator toneG = new ToneGenerator(AudioManager.STREAM_SYSTEM, 100);