Android AudioTrack очень медленный на некоторых устройствах

У меня есть система декодирования аудио MP3 с MediaExtractor, преобразовав это с MediaCodec и играть с AudioTrack, На большинстве устройств это работает нормально, но на Samsung Galaxy S3 и Samsung Galaxy Tab некоторые пользователи сообщают о крайне медленном воспроизведении звука. Я не могу воспроизвести его на эмуляторе или физических устройствах.

1 ответ

Решение

Оказывается, после многих неприятностей проблема была с моим использованием MediaFormat, На некоторых устройствах MediaFormat возвращается MediaCodec не совпадает с тем, который возвратил MediaExtractor, Частота кадров и т. Д. Может изменяться. Вместо того, чтобы создавать AudioTrack с MediaFormat, возвращенным MediaExtractor, необходимо было дождаться начала декодирования. В таком случае, MediaCodec.dequeueOutputBuffer() вернусь MediaCodec.INFO_OUTPUT_FORMAT_CHANGED, MediaCodec.getOutputFormat() затем можно использовать возврат правильного MediaFormat, с помощью которого можно инициализировать AudioTrack. Надеюсь, это кому-нибудь поможет.

Другие вопросы по тегам