开发者

How to play online radio in android

开发者 https://www.devze.com 2023-02-03 13:59 出处:网络
I am working on android ap开发者_开发问答plication in which i have play online radio streaming.

I am working on android ap开发者_开发问答plication in which i have play online radio streaming. i have gone through the media player classes but i don't think is there any method to online streaming of radio. If any know about this please help me.

Thank You. Vikram


Vikram,

You should be able to achieve this using the MediaPlayer; however, depending on your format it may be difficult. For example, if you're trying to play an online radio stream that uses .pls, or .m3u, you would have to parse that file, and pull out the true URLs to use.

Beyond that, you should be able to use MediaPlayer's create method with a URL to start streaming playback. Keep in mind that if the streams URL redirects (which it likely does) you may have to resolve the URL. A simple way to do this is use HttpURLConnection to open a connection, then connect(), then getURL(). You'll likely need a string url, so call toExternalForm() on the result from getURL().

Additionally, If things aren't working for you with MediaPlayer via URL, you might have to come up with your own buffering mechanism to get the data from the server. That being the case, you can try this tutorial: http://blog.pocketjourney.com/2008/04/04/tutorial-custom-media-streaming-for-androids-mediaplayer/


From what I've read, you should just be able to do:

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

to get basic functionality I believe, but I haven't tested it myself.


the easiest way to play a radio channel in android is to use the built in MediaPlayer, however when the datasource is from web the prepare() method takes a long time to execute and you should use prepareAsync() instead to avoid blocking the ui:

    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();
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号