Как играть в онлайн радио на андроид - PullRequest
15 голосов
/ 07 января 2011

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

Спасибо.Викрам

Ответы [ 3 ]

7 голосов
/ 07 января 2011

Vikram,

Вы должны быть в состоянии достичь этого с помощью MediaPlayer;однако, в зависимости от вашего формата это может быть сложно.Например, если вы пытаетесь воспроизвести онлайн-радиопоток, который использует .pls или .m3u, вам придется проанализировать этот файл и извлечь нужные URL-адреса.

Помимо этого, выдолжен быть в состоянии использовать метод create MediaPlayer с URL, чтобы начать потоковое воспроизведение.Имейте в виду, что если URL-адреса потоков перенаправляются (что, скорее всего, происходит), возможно, вам придется разрешить URL-адрес.Простой способ сделать это - использовать HttpURLConnection, чтобы открыть соединение, затем connect (), затем getURL ().Скорее всего, вам понадобится строковый URL, поэтому вызовите функцию ExternalForm () для результата getURL ().

Кроме того, если у вас не работает MediaPlayer через URL, вам, возможно, придется придуматьваш собственный механизм буферизации для получения данных с сервера.В таком случае, вы можете попробовать этот урок: http://blog.pocketjourney.com/2008/04/04/tutorial-custom-media-streaming-for-androids-mediaplayer/

5 голосов
/ 07 января 2011

Из того, что я прочитал, вы должны просто сделать:

MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(streamingURL);
mediaPlayer.prepare();
mediaPlayer.start();

, чтобы получить базовую функциональность, я верю, но я не проверял ее сам.

1 голос
/ 23 августа 2014

Самый простой способ воспроизвести радиоканал в Android - это использовать встроенный MediaPlayer, однако, когда источник данных поступает из Интернета, метод prepare () выполняется долго, и вместо этого вам следует использовать prepareAsync (), чтобы избежать блокировки. пользовательский интерфейс:

    player = new MediaPlayer();
    player.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
        @Override
        public void onPrepared(MediaPlayer mediaPlayer) {
                player.start();
            }
        }
    });

    try {
        player.setDataSource(currentChannelUrl);
        player.setAudioStreamType(AudioManager.STREAM_MUSIC);
    } catch (IOException e) {
        Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
        e.printStackTrace();
        return;
    }
    player.prepareAsync();
...