如何Shoutcast的Streamming与MediaPlayer的采用Android 2.3.3

2019-09-19 13:49发布

大家好,感谢提前,

我一直都在看天论坛和互联网,我没有得到任何明确这一点。 我不知道是否有可能以直接和简单的方式。 我读了所有的时间,自2.2它是原生支持,但我没有看到和示例,其中它的工作原理很容易

首先,我做一些测试与网络上的一些MP3播放和这个代码工作得很好:

mp = new MediaPlayer();
mp.setDataSource(localContext, Uri.parse(SomeURL.mp3));     
mp.prepare();
mp.start()  

但现在....我要再现流音频和我一直在考虑只是一个IP和端口从SHOUTcast服务器,我想所有样的事情,但所有的时间我得到了媒体播放器,典型的(0误差, -38)的错误,一般。

mp = new MediaPlayer();
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
//mp.setDataSource("http://xxx.xxx.xxx.xxx:xxxx");          
mp.setDataSource("http://xxx.xxx.xxx.xxx");
mp.prepareAsync();
mp.start()  --> it crashs here  

我不知道如果我这样做正确的....我第一次面对流问题....

是否有可能使一个简单的方法这样呢? 如果不是....有什么解决方法?

谢谢 !!

Answer 1:

之后没有太多的谷歌搜索结果的两天,我发现了一个网页有很多公共流媒体URL的链接 ,我尝试了一些与原来的代码,并在Windows Media Player。 几乎所有的再没有在WMP工作,但有些是的......所以我想他们中的一些,并与链接的人也没有工作......但那些具有IP +端口是! 看来问题是采用IP +端口我有测试....所以我的代码是非常简单终于....和它的作品的西班牙语电台。

if(!mp.isPlaying()){
  try{
    mp = new MediaPlayer();
    mp.setOnPreparedListener(this);
    mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
    url="http://91.121.92.186:8060";
    mp.setDataSource(url);
    mp.prepareAsync();
  }catch(IOException e){
    e.printStrackTrace();
  }
}

@Override
public void onPrepared(MediaPlayer mp) {
    mp.start();//Cuando acaba de cargar inicia la reproducción
}


Answer 2:

你的代码提供的崩溃,因为如果u使用“mp.prepareAsync();” 然后ü不能“mp.start”你必须在准备监听器“mp.setOnPreparedListener(新OnPreparedListener(使用){

                @Override
                public void onPrepared(MediaPlayer arg0) {
                    // TODO Auto-generated method stub
                    mp.start();
                    }});"


Answer 3:

你为什么不来看看:

Android的在线电台串流应用

要么

http://code.google.com/p/rxwen-blog-stuff/source/browse/trunk/android/streaming_audio/

或者可能

http://erkutaras.blogspot.fr/2011/08/stream-audio-from-url-example-android.html

并告诉我们,如果它的工作

;-)



文章来源: how to ShoutCast Streamming with MediaPlayer with android 2.3.3