Потоковая передача аудиофайлов и их кеширование

Я хочу передать аудио mp3 файл, а затем воспроизвести его через медиа-плеер Android., а также хочу кэшировать этот файл, чтобы медиаплеер не должен был поток для недавно воспроизведенных треков.

Я пробовал использовать метод prepareAsync, но он не дает мне доступ к содержимому буфера, поэтому я решил сам передать аудиофайл, а затем передать его медиаплееру для воспроизведения. Я достиг этого, следуя этой статье здесь, но этот подход имеет проблему, то есть при передаче файла на медиаплеер он переходит в режим ошибок, который заставляет моего игрока вести себя непоследовательно.

Когда медиаплеер переходит в режим ошибок, он не выходит из него автоматически, поэтому я вынужден создать новый медиаплеер, а затем повторно предоставить его загруженному файлу, это обходное решение заставляет пользователя испытывать нежелательную паузу в воспроизведение песни.

Итак, кто-то улучшил версию кода, указанную в ссылке ? или знают ли они лучшее решение этой проблемы или, есть ли на самом деле библиотека для потоковой передачи аудиофайла в андроиде?

Спасибо

Ответ 1

Указанная вами ссылка выглядит как менее идеальное решение (не говоря уже об устаревших). Возможно, вам нужен локальный прокси-сервер, который дает вам доступ к данным байта, прежде чем MediaPlayer получит его. См. Мой ответ здесь для получения более подробного объяснения.