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);
Другие вопросы по тегам