如何使用安卓2.3.3的MediaPlayer大喊直播



大家好,提前感谢

我整天都在论坛和互联网上寻找,对此我一点也不清楚。我不确定是否可以用一种直接而简单的方式。我一直读到,自2.2以来,它是本地支持的,但我没有看到和示例它在哪里可以轻松工作

首先,我在网上用.mp3做了一些测试,这个代码运行得很好:

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

但是现在。。。。我必须复制流音频,我只得到了一个来自shoutcast服务器的ip和端口,我正在尝试各种各样的事情,但一直以来我在媒体播放器中遇到错误,典型的(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  

我不知道我做得是否正确。。。。我第一次面对流问题。。。。

有可能把它变成一种简单的方式吗?如果不是。。。。解决方案是什么?

谢谢!!

经过两天的谷歌搜索,我发现一个页面上有很多公共流媒体url链接,我尝试了一些原始代码和windows媒体播放器。几乎所有这些都不适用于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
}

您提供的代码崩溃,因为如果您使用"mp.prepareSync();",则不能使用"mp.start",您必须在准备好的侦听器上使用"mp.setOnPreparedListener(new OnPrepared listener(){

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

为什么不看看:

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

告诉我们它是否有效

;-)

相关内容

  • 没有找到相关文章

最新更新