大家好,并提前致谢,
我整天都在寻找论坛和互联网,我对此并不清楚。我不确定是否可以直接而简单的方式。我读过所有的时间,因为它本身支持它,但我没有看到和它的工作原理的例子
首先,我在网上对一些.mp3进行一些测试,这段代码运行良好:
mp = new MediaPlayer();
mp.setDataSource(localContext, Uri.parse(SomeURL.mp3));
mp.prepare();
mp.start()
但现在....我必须重现Stream音频,我只是从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
我不知道我是否正确行事......第一次遇到流问题......
有可能让它像这样简单吗?如果不是......有什么解决方案?
谢谢!
答案 0 :(得分:3)
经过两天的谷歌搜索没有太多结果,我找到了一个包含大量公共流媒体网址link的页面,我尝试了一些原始代码和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
}
答案 1 :(得分:2)
您提供的代码崩溃,因为如果您使用“mp.prepareAsync();”然后你不能“mp.start”你必须在准备好的监听器上使用“mp.setOnPreparedListener(new OnPreparedListener(){
@Override
public void onPrepared(MediaPlayer arg0) {
// TODO Auto-generated method stub
mp.start();
}});"
答案 2 :(得分:1)