Прогрессивная загрузка аудио файла

Я хочу написать приложение, которое воспроизводит прогрессивно загруженную аудиозапись из удаленного источника http через стандартный Android mediaplayer, но я хочу также сохранить копию аудиофайла на SD-карту. Это оказалось трудной проблемой:

1) Проходим uri к медиа-плееру, а затем "вырезать из цикла" во время воспроизведения, потому что mediaplayer говорит напрямую с пультом, не имея доступа к воспроизводимым байтам

2) Похоже, что у Android нет возможности записать загруженные биты на диск или обратного вызова для доступа к загруженным данным.

3) Хотя возможно встроить веб-сервер в наше приложение (см. nanohttpd), а затем передать localhost Ури в mediaplayerэто похоже на ужасный клудж

Я пропускаю более простой способ? Это должно быть решенной проблемой?!

Редактировать: Возможно, более простой вопрос: если у меня в памяти есть буфер, содержащий музыку, могу ли я ее воспроизвести? Кажется смешным, что я должен записать его на диск или использовать веб-сервер, чтобы получить mediaplayer играть в нее.

1 ответ

Решение

Да, есть способ сделать это. Создайте локальный прокси-сервер и подключите к нему MediaPlayer. Смотрите мой ответ здесь для более подробной информации.

Редактировать: посмотрев на мой компьютер вместо моего телефона, я заметил, что вы упомянули о внедрении сервера в ваше приложение. Если все сделано правильно, это легко и просто. И это даст вам доступ к необработанным данным. Я не думаю, что это "клудж" вообще.

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