В моем приложении для Android я использую API AudioTrack для вывода аудиобайтов, которые я получаю из соединения RFCOMM Bluetooth. Звук играет так, как ожидалось, и очень ясен. Тем не менее, приложение иногда выходит из строя из-за следующее утверждение в AudioTrackShared.cpp:Понимание AudioTrack Assertion в Android
stepCount <= mUnreleased && mUnreleased <= mFrameCount
Я не совсем уверен, что влечет за собой это утверждение, но кто имеет представление о том, что могло бы вызвать эту проблему? Я могу предоставить дополнительный исходный код, если это необходимо:
Моя установка для аудиодорожки:
int minSize = AudioTrack.getMinBufferSize(8000, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_8BIT);
mAudioPlayer = new AudioTrack(AudioManager.STREAM_MUSIC, 8000, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_8BIT, minSize * 4, AudioTrack.MODE_STREAM);
Вы повторно используете буфер, который вы пишете в AudioTrack? –
@MimmoGrottoli Я создаю новый массив размером 64 каждый раз, когда пишу в AudioTrack. – Rahin
Это значение, которое вы получаете от AudioTrach.getMinBufferSize? –