Воспроизведение радиостанции в приложении для Android

Как я могу сыграть radio station, используя Media Player в Android?

Я использую iRadeo station, у которого есть две песни с

   url:"https://www.iradeo.com/station/133063" 

но когда я пытаюсь сделать

   Uri myUri = Uri.parse("https://www.iradeo.com/station/133063"); 

Media Player выдает ошибку java.io.FileNotFoundException: No content provider

Но когда я пытаюсь воспроизвести определенную песню с этой станции, используя .../.../station/133063/download-track/469508 в качестве нового uri, Media Player работает, и приложение начинает воспроизводить песню.

Кто-нибудь знает, почему я не могу воспроизвести весь плейлист, используя URL станции iRadeo radio? Спасибо!


person Jamarr Lampart    schedule 30.07.2015    source источник


Ответы (1)


Ваша ссылка указывает на HTML-страницу, и MediaPlayer не может ее воспроизвести, поскольку это не музыкальный файл. Хотя вы можете воспроизводить песни, когда открываете эту страницу в браузере, MediaPlayer этого не знает. Таким образом, вы должны указать фактические файлы песен на сервере, а затем воспроизвести их один за другим.

И как вы это делаете? Я думаю, вы не знаете, какие песни будут там заранее. Если вы это сделаете, просто используйте ссылки на эти файлы, такие как тот, который вы разместили, и пропустите этот абзац. Если вы этого не сделаете, все может быть сложно.
Если у iRadeo нет общедоступного API для таких вещей, я не думаю, что есть простое решение.
Но есть немного хакерский и не такой простой способ: так как у вас есть список песен и ссылки для скачивания рядом с ними, вы извлекаете эти ссылки из HTML-страницы. Общий способ сделать это так: найдите, где находится список песен на странице, и для каждого элемента в списке найдите кнопку загрузки и используйте ее ссылку. Я не могу помочь вам больше. И имейте в виду - любое изменение реализации сайта может сломать ваш код.

Когда у вас есть местоположение файлов, пришло время их воспроизвести. Вы можете найти, как это сделать здесь: https://stackoverflow.com/a/14548795/2078587. Просто используйте URI вместо необработанных файлов.

PS. Я не силен в объяснении вещей. Если вы ничего не понимаете, не стесняйтесь спрашивать.

person srka    schedule 30.07.2015
comment
Большое спасибо!! Это немного помогло. - person Jamarr Lampart; 31.07.2015