Прогрессивная загрузка аудио файла
Я хочу написать приложение, которое воспроизводит прогрессивно загруженную аудиозапись из удаленного источника http через стандартный Android mediaplayer
, но я хочу также сохранить копию аудиофайла на SD-карту. Это оказалось трудной проблемой:
1) Проходим uri
к медиа-плееру, а затем "вырезать из цикла" во время воспроизведения, потому что mediaplayer
говорит напрямую с пультом, не имея доступа к воспроизводимым байтам
2) Похоже, что у Android нет возможности записать загруженные биты на диск или обратного вызова для доступа к загруженным данным.
3) Хотя возможно встроить веб-сервер в наше приложение (см. nanohttpd
), а затем передать localhost
Ури в mediaplayer
это похоже на ужасный клудж
Я пропускаю более простой способ? Это должно быть решенной проблемой?!
Редактировать: Возможно, более простой вопрос: если у меня в памяти есть буфер, содержащий музыку, могу ли я ее воспроизвести? Кажется смешным, что я должен записать его на диск или использовать веб-сервер, чтобы получить mediaplayer
играть в нее.
1 ответ
Да, есть способ сделать это. Создайте локальный прокси-сервер и подключите к нему MediaPlayer. Смотрите мой ответ здесь для более подробной информации.
Редактировать: посмотрев на мой компьютер вместо моего телефона, я заметил, что вы упомянули о внедрении сервера в ваше приложение. Если все сделано правильно, это легко и просто. И это даст вам доступ к необработанным данным. Я не думаю, что это "клудж" вообще.