【问题标题】:Play from Shoutcast Url in android从 Android 中的 Shoutcast Url 播放
【发布时间】:2013-09-06 07:50:58
【问题描述】:

我正在开发一个需要从 Shout cast 播放 Radio 的应用程序。 对于 API,我遵循了这个 URL

我成功地使用我的开发人员 ID 获得了一个电台 ID。现在,在“如何调谐到一个电台”部分中,他们已经指导了如何调谐到一个特定的电台。我遵循了该部分并在我的 android 媒体播放器中使用了这个 URL。但是我的媒体播放器什么也没播放。

请注意我的目标 SDK 是 16,Min SDK 是 13。所以我希望 android 版本没有问题。 如果使用其他 URL,媒体播放器可以正常工作,例如:

所以我想我的媒体播放器没有问题。我已经浏览了 SO 中可用的帖子。请帮忙。

public class MainActivity extends Activity {

        Button play,pause,stop;
        private MediaPlayer mediaPlayer;
        private String out;
//      private String url = "http://yp.shoutcast.com/sbin/tunein-station.pls?id=175821";
//      private String url = "http://www.hrupin.com/wp-content/uploads/mp3/testsong_20_sec.mp3";

        private String url1 = "http://streamplus8.leonex.de:14910";
        private String url2 ="http://s2.voscast.com:7016/";
        private String url3 ="http://s8.voscast.com:7024/";
        private String url4 ="http://s8.voscast.com:7020/";
        private String url5 ="http://s5.voscast.com:8216/";

        private boolean pauseState = false;
        ProgressDialog pd;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);

                pd = new ProgressDialog(this);
                pd.setMessage("Loading your song....");
                play = (Button)findViewById(R.id.btn_play);
                pause = (Button)findViewById(R.id.btn_pause);
                stop = (Button)findViewById(R.id.btn_stop);

                mediaPlayer = new MediaPlayer();
                this.setVolumeControlStream(AudioManager.STREAM_MUSIC);  
            try {
                mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
                mediaPlayer.setDataSource(url2);
                mediaPlayer.prepareAsync();
            } catch (Exception e) {
                Toast.makeText(getApplicationContext(), "Please check your connection!", Toast.LENGTH_LONG).show();
                e.printStackTrace();
            }

            play.setOnClickListener(new OnClickListener() {                    
                        @Override
                        public void onClick(View arg0) {

                                if(pauseState == true) {
                    mediaPlayer.start();
                } else {
                        pd.show();
                    mediaPlayer.setOnPreparedListener(new OnPreparedListener() {
                        @Override
                        public void onPrepared(MediaPlayer mp) {
                            mediaPlayer.start();
                            if(mediaPlayer.isPlaying()){
                                pd.dismiss();
                            }
                        }
                    });
                }
                                pauseState = false;                            
                        }
                });
            pause.setOnClickListener(new OnClickListener() {                   
                        @Override
                        public void onClick(View arg0) {
                                mediaPlayer.pause();
                                pauseState = true;                             
                        }
                });
            stop.setOnClickListener(new OnClickListener() {                    
                        @Override
                        public void onClick(View arg0) {
                                mediaPlayer.stop();
//                              mediaPlayer.release();
                        }
                });


        }

}

【问题讨论】:

    标签: android shoutcast


    【解决方案1】:

    好的。好吧,我终于弄清楚了自己。实际上,当我点击这个Url 时,正在下载一个 .pls 文件。 .pls 文件的内容是这样的

    [playlist]
    numberofentries=1
    File1=http://203.150.225.71:8000
    Title1=(#1 - 10866/10000) COOLfahrenheit 93
    Length1=-1
    Version=2
    

    我必须读取这个文件,然后解析这个文件以获得实际的 URL。这里是

    http://203.150.225.71:8000
    

    Android 媒体播放器可以播放此 URL。

    【讨论】:

    • 嗨,我想在我的 android 中实现shoutcast api,我使用此链接wiki.winamp.com/wiki/SHOUTcast_Radio_Directory_API,但我不知道如何获取 k=[Your Dev ID] 以便在我的应用程序中使用此 api。
    • 您必须自己注册才能获得设备ID
    • 我在文件中得到了这个,而不是 url '[playlist] numberofentries=0 Version=2' 我应该如何得到它?
    • @SyamantakBasu 试试这个存储库github.com/sandeeprana011/shoutcast_android
    • 您能告诉我们您是如何解析这个 .pls 文件的吗?
    【解决方案2】:

    我不想下载 .pls 文件以便找到其他解决方案。 最后,我得到了简单的直播应用程序。 试试this。只需更改 StreamService.java 中的流式传输 url。

    【讨论】:

    • 您在文件中也使用了相同的网址:O
    • 什么意思?在 StreamService.java 中,您只需将 url 更改为 String url = "176.31.115.196:8214";您需要将 url 设置为 mediaplayer 数据源。该示例项目将使用您的流 url 运行。
    • 176.31.115.196:8214 这不是我们下载文件后读取的url吗?
    • 没有。我的解决方案是不读取文件。只需播放广播服务器公共 url。您需要知道您的直播 Steam 服务器公共网址。
    • 你好@BM,我在服务器上有两个流网址,所以它不工作,但我尝试使用你的网址然后它工作..请帮助我!!
    猜你喜欢
    • 2011-05-22
    • 1970-01-01
    • 1970-01-01
    • 2014-06-04
    • 2014-02-16
    • 1970-01-01
    • 2014-10-12
    • 2013-07-19
    • 2013-09-28
    相关资源
    最近更新 更多