我是一个全新的(47分钟)进入Android开发,我遇到的问题可能很简单。
无论如何,这里是。
我想使用一个网络服务,给定一个网址,吐出一个Mp3(浏览器立即开始下载)。
MediaPlayer player = new MediaPlayer();
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 20, 0);
String url = "http://www.gimme-an-mp3.com/xyz";
try {
player.setDataSource(url);
} catch (IOException e) {
e.printStackTrace();
}
player.prepareAsync();
player.start();
由于某种原因,媒体播放器不播放我的Mp3文件。为什么?我是否必须首先下载它,然后将其传递给媒体播放器?
答案 0 :(得分:0)
只有在玩家准备好之后才能调用player.start()。 在此之前,玩家仍在准备中。
player.prepareAsync();
player.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
mediaPlayer.start();
}
});
更多细节可以在http://developer.android.com/reference/android/media/MediaPlayer.html
找到和Android: correct usage of PrepareAsync() in media player activity