如果我使用此网址,我的代码工作正常
http://programmerguru.com/android-tutorial/wp-content/uploads/2013/04/hosannatelugu.mp3
但如果我尝试使用此URL,则会出现以下异常
java.io.IOException: Prepare failed.: status=0x1
android.media.MediaPlayer.prepare(Native Method)
//after some lines
start called in state 0
error (-38, 0)
这是我使用的第二个网址
如果你打开文件,你会发现两者都是一回事。之前我认为.mp3
文件已损坏,但事实并非如此!
我猜问题与主持人或其他东西有关,但我已经没想到了。
这是我的代码。
public class MainActivity extends AppCompatActivity {
Button play;
Button stop;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
play = (Button) findViewById(R.id.play);
play.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Uri myUri = Uri.parse("http://hcservices.byethost4.com/hosannatelugu.mp3");
MediaPlayer mPlayer = new MediaPlayer();
try {
String a = "http://hcservices.byethost4.com/hosannatelugu.mp3";
mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mPlayer.setDataSource(a);
mPlayer.prepare();
} catch (Exception e) {
e.printStackTrace();
}
mPlayer.start();
}
});
}
}
答案 0 :(得分:0)
要在此处复制Android网站上的一些文档。也许它会帮助你。
通过HTTP流媒体从远程URL播放看起来像这样
String url = "http://........"; // your URL here
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDataSource(url);
mediaPlayer.prepare(); // might take long! (for buffering, etc)
mediaPlayer.start();
由于您的代码已经是这样,我假设您的问题是这个额外的注意事项。
注意:如果您要传递URL以流式传输在线媒体文件,则该文件必须能够逐步下载。
因此,如果第一个链接有效,但第二个链接没有,则意味着第二个主机不支持“渐进式下载”。这是服务器的问题,而不是您的应用程序或代码。
来源:http://developer.android.com/guide/topics/media/mediaplayer.html