Android MediaPlayer错误代码(-38,0)getDuration

Android MediaPlayer错误代码(-38,0)getDuration,android,Android,我目前正试图设计一个简单的应用程序,流式播放音乐播放器。我有这首歌的URL,正在设置MediaPlayer,如下所示。第一首歌时一切正常,但当我播放另一首歌时,程序在模拟时没有崩溃,但没有播放任何内容,我得到以下错误: E/MediaPlayer:尝试在没有有效MediaPlayer的情况下调用getDuration E/MediaPlayer:错误(-38,0) E/MediaPlayer:错误(-38,0) PlayerService.java 公共类MusicLayerService扩展

我目前正试图设计一个简单的应用程序,流式播放音乐播放器。我有这首歌的URL,正在设置
MediaPlayer
,如下所示。第一首歌时一切正常,但当我播放另一首歌时,程序在模拟时没有崩溃,但没有播放任何内容,我得到以下错误:

E/MediaPlayer:尝试在没有有效MediaPlayer的情况下调用getDuration
E/MediaPlayer:错误(-38,0)
E/MediaPlayer:错误(-38,0)
PlayerService.java

公共类MusicLayerService扩展服务{
私人宋美松;
@凌驾
公共int onStartCommand(Intent Intent、int标志、int startId){
mSong=ListSong.getListSong().get(ListSong.getSelectedItem());
registerLocalFilter();
playMedia();
返回开始时间;
}
私人媒体{
if(handler==null){
线程=新线程(新可运行(){
@凌驾
公开募捐{
Looper.prepare();
handler=新的handler();
handler.post(playAudioFromURL);
loop.loop();
}
});
thread.start();
}否则{
handler.post(playAudioFromURL);
}
}
private Runnable playAudioFromURL=new Runnable(){
@凌驾
公开募捐{
如果(mediaPlayer!=null){
mediaPlayer.release();
}
mediaPlayer=新的mediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
试一试{
setDataSource(mSong.getSongUrl());
mediaPlayer.setOnPreparedListener(onPreparedListener);
setOnCompletionListener(onCompletionListener);
setOnSeekCompleteListener(onSeekCompleteListener);
mediaPlayer.setOneRorListener(OneRorListener);
mediaPlayer.prepareAsync();
}捕获(IOE异常){
e、 printStackTrace();
w(标记为“playAudioFromURL:+e.toString());
}捕获(IllegalArgumentException ex){
w(标记为“playAudioFromURL:+ex.toString());
}捕获(非法状态例外){
w(标记为“playAudioFromURL:+ex.toString());
}
}
};
private MediaPlayer.OnPreparedListener OnPreparedListener=new MediaPlayer.OnPreparedListener(){
@凌驾
已准备好公开作废(MediaPlayer mp){
ListSong.setPlaying(true);
sendLoadComplete();
updateTimer();
mp.start();
}
};
}
我已经在
onPrepared()
中编写了
mp.start()
,并使用
mediaPlayer.prepareAsync()喜欢上的解决方案,但它不起作用


请帮帮我

mediaPlayer.setDataSource(mSong.getSongUrl())之前在MediaPlayer中
MediaPlayer.reset()可能可以解决您的问题。

可以吗?那就应该在评论里了,伙计!