Я получаю сообщение об ошибке при запуске приложения, в котором используется API OpenSL ES для Android. Когда я запускаю приложение, я получаю следующую ошибку:
05-23 16:18:19.355: ERROR/AudioHardwareALSA(84): ALSALib device/samsung/GT-I9000/alsa-lib/src/pcm/pcm.c:7244:(snd_pcm_recover) overrun occured.
Однако я не смог найти причину. Может быть, это отладочное сообщение как-то связано с этим?
05-23 16:18:19.339: DEBUG/dalvikvm(1409): JIT unchain all for threadid=11
Я подозреваю, что первое вызвано вторым. Но как я могу предотвратить это тогда? Я также вижу несколько отладочных сообщений GC_EXPLICIT и GC_CONCURRENT в моих журналах.
В любом случае, я использую OpenSL ES для записи и воспроизведения аудиоданных. Данные отправляются и / или принимаются через Wi-Fi через уровень Java. Но для того, чтобы это происходило свободно, я не хочу, чтобы GC приходил и вмешивался ... Есть ли способ помешать ВМ ограничить использование GC?
Редактировать
Я обнаружил, что JIT unchain all for threadid=11
не проблема. Я запустил приложение на новом чистом телефоне, и сначала ошибка не отображается, но сообщение DEBUG по-прежнему отображается. Это не имеет никакого влияния на производительность тогда. Однако через несколько дней ошибка начинает проявляться, и я получаю небольшие изменения в моих аудиоданных.
Я попытался увеличить количество буферов, выделенных моему рекордеру, которое теперь равно 4, но это тоже не помогает. Я просмотрел исходный код pcm.c, но это больше не помогает мне в этой проблеме. У кого-нибудь есть идеи по этому вопросу?