Я пытаюсь создать звучащее метрономное приложение для Android. Прямо сейчас у меня есть AudioTrack, который я создаю и нажимаю кнопку воспроизведения для инициализации. Затем я записываю байты PCM в буфер и использую AudioTrack.writeSound() для записи в буфер. Сначала я пишу в буфер
for(int i=0;i<this.tick;i++) {
soundTickArray[i] = tick[i];
}
for(int i=0;i<silence;i++)
silenceSoundArray[i] = 0;
}
Затем я пишу в audioTrack после того, как он был преобразован в PCM последовательно, как это в цикле.
do {
audioGenerator.writeSound(soundTickArray);
audioGenerator.writeSound(silenceSoundArray);
} while(running);
в цикле while, пока он не будет завершен в другом потоке.
Проблема в том, что я продолжаю получать эту ошибку.
Трек releaseBuffer() 0xb491b280 отключен из-за предыдущего опустошения, перезапуск
И метроном не останавливается.
У кого-нибудь есть какие-либо предложения относительно того, почему это происходит или как это решить.
Или какие-либо другие предложения по запуску последовательных ударов метронома, которые не запаздывают и являются точными? Я пытался использовать SoundPool, но столкнулся с задержкой.
Спасибо!