Mediaplayer start called in state 0

在使用Mediaplayer播放音频时,出现start called in state 0,原因主要是因为你在音频的播放顺序出现了问题
Mediaplayer start called in state 0_第1张图片
如图,在setDataSource()之后要先prepare(),然后才能start()。不然就会报错。
当我们在播放在线音频时,我们希望的是prepareAsync(),下面我就用这个来举例:

public void play(){
        try {
            mediaPlayer.setOnPreparedListener(this);
            mediaPlayer.prepareAsync();
        } catch (IllegalStateException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
}

@Override
public void onPrepared(MediaPlayer mp) {
        mediaPlayer.start();
    }
}

在prepare完成之前,不能对mediaPlayer进行别的操作,例如getDuration等,不然也是会出现start called in state 0的错误

转载:http://www.android100.org/html/201507/12/164270.html

你可能感兴趣的:(mediaplayer)