MediaPlayer change DataSource Error when MediaPlay

2019-03-03 21:31发布

Any one Help for MediaPlayer Error. when aim is to Change DataSource and Play second Audio when First Audio is Compliting its Playing.

My Code is below :- mMediaPlayer.setOnCompletionListener(new OnCompletionListener() {

        @Override
        public void onCompletion(MediaPlayer arg0) 
        {

           String fileName = Environment.getExternalStorageDirectory().getAbsolutePath() + FILENAME+arrListSize+".wav";
           mMediaPlayer.release();
           mMediaPlayer = null;
           mMediaPlayer = new MediaPlayer();
           Uri uri  = Uri.parse("file://"+fileName);                                    mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
            try 
            {
              mMediaPlayer.setDataSource(getApplicationContext(), uri);
              mMediaPlayer.prepare();
            } 
            catch (Exception e) 
            {                       
                e.printStackTrace();
            }

Error :- setDataSource called in state 32

Thanks.

1条回答
狗以群分
2楼-- · 2019-03-03 21:41

From the error, it looks like the previous instance of the MediaPlayer is not released completely. When the playback has completed, the player is in Paused state when the onCompletionListener is invoked. Can you please stop the MediaPlayer before releasing the same?

mMediaPlayer.stop();
mMediaPlayer.release();
mMediaPlayer = NULL;
mMediaPlayer = new MediaPlayer();
...
查看更多
登录 后发表回答