Я использую MediaPlayer для воспроизведения аудиофайла, который находится в сети internet. Все отлично воспроизводится, но теперь мне нужно параллельно сохранить воспроизводимый файл. Я конечно могу его повторно скачать и сохранить, но ведь он уже загружен в MediaPlayer. Как мне достать его оттуда и сохранить? Еще вариант - как подсунуть Mediaplayer'у поток байтов для воспроизведения, например
Ответ
В итоге решил изменить подход: Вместо того, чтобы выковыривать кешированный файл из MediaPlayer, я решил кешировать его вручную. Для этого я использую прокси-сервер, который работает внутри самого приложения, и кеширует все файлы, проходящие через него.
Конкретно использую эту библиотеку AndroidVideoCache
Несмотря на название, она подходит так же и для кеширования аудио-файлов. Работает следующим образом:
proxy = new HttpProxyCacheServer.Builder(this).build();
...
String proxyUrl = proxy.getProxyUrl(file.getURL());
mediaPlayer.setDataSource(this, Uri.parse(proxyUrl));
Комментариев нет:
Отправить комментарий