MediaPlayer change DataSource Error when MediaPlayer complets Playing First Audio
Asked Answered
K

1

0

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.

Kantian answered 1/3, 2013 at 6:51 Comment(0)
C
1

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();
...
Cardiogram answered 1/3, 2013 at 15:39 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.