当MediaPlayer完成播放第一音频时,MediaPlayer更改DataSource错误

时间:2013-03-01 06:51:38

标签: media-player android-mediaplayer mpmediaplayercontroller

MediaPlayer错误的任何一个帮助。 当第一个音频正在播放时,目标是改变数据源并播放第二个音频。

我的代码如下: - 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();
            }

错误: - 在状态32中调用setDataSource

感谢。

1 个答案:

答案 0 :(得分:1)

从错误中看,MediaPlayer的上一个实例未完全释放。播放完成后,当调用onCompletionListener时,播放器处于暂停状态。在发布相同的内容之前,您可以stop MediaPlayer吗?

mMediaPlayer.stop();
mMediaPlayer.release();
mMediaPlayer = NULL;
mMediaPlayer = new MediaPlayer();
...