鍍金池/ 問答/Android/ android 開發(fā)音樂播放器 MediaPlayer.prepare();報(bào)錯(cuò)

android 開發(fā)音樂播放器 MediaPlayer.prepare();報(bào)錯(cuò)

android 播放音樂 MediaPlayer.prepare();報(bào)錯(cuò)。點(diǎn)擊多次后才崩潰

/**
     * 播放音樂
     * @param path
     */

    public void play(String path){
        if(mediaPlayer!=null){
            mediaPlayer.reset();
            try {
                mediaPlayer.setDataSource(path);
                mediaPlayer.prepare();
                mediaPlayer.start();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

報(bào)錯(cuò):

 FATAL EXCEPTION: main
       Process: cn.com.mymusic, PID: 11807
       java.lang.IllegalStateException
       at android.media.MediaPlayer._prepare(Native Method)
       at android.media.MediaPlayer.prepare(MediaPlayer.java:1143)
       at cn.com.mymusic.MusicService.play(MusicService.java:101)
回答
編輯回答
真難過

prepare成功 之后再start.

2017年3月6日 03:52
編輯回答
怣痛

why not use 'mediaPlayer.prepareAsync()',then you can setup the callback just like this:

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

it worked fine to me ,i hope it can help you ~

2017年7月2日 22:30
編輯回答
薄荷糖

播放本地文件 用 mediaPlayer.prepare()
播放網(wǎng)絡(luò) mediaPlayer.prepareAsync()

2017年12月20日 11:23