刚开始播放音频...开始播放,缓冲区继续播放,但突然停止。当歌曲赶上缓冲区时,音乐会停止。按下接下来的巢歌曲,但同样的事情发生。任何想法?
private void startPlay(String file, String name)
{
Log.i("Selected: ", file);
tv_selelctedFile.setText(name);
//progressControlSeekbar.setProgress(0);
int maxVolume = mediaPlayer.getDuration();
int curVolume = mediaPlayer.getCurrentPosition();
progressControlSeekbar.setMax(maxVolume);
progressControlSeekbar.setProgress(curVolume);
progressControlSeekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
public void onStopTrackingTouch(SeekBar seekBar)
{
isMoveingSeekBar = false;
}
public void onStartTrackingTouch(SeekBar seekBar)
{
isMoveingSeekBar = true;
}
public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser)
{
if(isMoveingSeekBar)
{
mediaPlayer.seekTo(progress);
Log.i("OnSeekBarChangeListener","onProgressChanged");
}
}
});
mediaPlayer.stop();
mediaPlayer.reset();
try {
mediaPlayer.setDataSource(file);
mediaPlayer.prepare();
mediaPlayer.start();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
progressControlSeekbar.setMax(mediaPlayer.getDuration());
playButton.setImageResource(android.R.drawable.ic_media_pause);
updatePosition();
isStarted = true;
}
答案 0 :(得分:0)
你可以尝试做的是 使用监听器而不是直接调用
mediaPlayer.prepare();//use preapareAsync()
mediaPlayer.start(); // dont call it here.
拨打媒体播放器的OnPreparedListener()
,然后在onPrepared()
中使用mediaplayer.start()
如果这没有帮助,只需实现媒体播放器的所有监听器,如onComplete
onError()
,并检查当媒体播放器突然停止播放时调用哪一个
希望它有所帮助。