Я пишу приложение для Android, которое должно иметь возможность искать определенные точки в большом аудиофайле mp3 (~ 90 минут) с хорошей точностью.
В настоящее время я использую подход OpenSL с объектом аудиоплеера с источником данных URI, который указывает файл mp3 и информацию MIME.
Чтобы проверить это, я использую интерфейс SLSeekITF на проигрывателе для поиска определенных точек (указанных в миллисекундах). Однако я считаю, что производительность поиска плохая и непоследовательная. Часто звук отличается на 1-10 секунд от того, где он должен быть. Иногда впереди, иногда сзади. Производительность немного лучше при использовании более коротких mp3-файлов, но далеко не достаточно.
Режимы поиска («точный» и «быстрый») не имеют никакого значения для SLSeekITF.
На других платформах я могу получить очень точную позицию поиска ‹ 50 мс, что едва заметно, поэтому я знаю, что это возможно.
-Кто-нибудь знает, как повысить точность аудиоплеера OpenSL? -Есть ли известные проблемы с этой реализацией? -Есть ли другие декодеры mp3 с более высокой производительностью?
Спасибо