Ошибка генерации звукового сигнала с использованием класса ToneGenerator
Я новичок в разработке Android
Я работаю в приложении для Android, которое просто меняет громкость и воспроизводит звуковой сигнал "для предварительного просмотра текущего уровня звука"
я использую startTone
в ToneGenerator
класс для генерации этого звукового сигнала, например:
ToneGenerator tg = new ToneGenerator(AudioManager.STREAM_RING, 100);
tg.startTone(ToneGenerator.TONE_PROP_BEEP);
но иногда этот код не работает и генерирует следующие исключения
11-20 00:32:44.262: E/AudioTrack(4701): AudioFlinger could not create track, status: -12
11-20 00:32:44.262: E/ToneGenerator(4701): AudioTrack->initCheck failed
Благодарю.
1 ответ
Решение
Я знаю, что сейчас слишком поздно, но я выкладываю ответ, потому что кто-нибудь придет позже.
это было как раз о выпуске созданных объектов ToneGenerator
потому что быстрое создание объектов ToneGenerator без их освобождения приведет к сбою приложения.
полный код:
final ToneGenerator tg = new ToneGenerator(AudioManager.STREAM_NOTIFICATION, 100);
tg.startTone(ToneGenerator.TONE_PROP_BEEP);
tg.release();