当MediaPlayer完成播放第一个音频时,MediaPlayer更改数据源错误 [英] MediaPlayer change DataSource Error when MediaPlayer complets Playing First Audio

查看:284
本文介绍了当MediaPlayer完成播放第一个音频时,MediaPlayer更改数据源错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有关MediaPlayer错误的任何帮助. 当目标是更改数据源并在第一音频"调整其播放时播放第二音频".

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

我的代码如下:- mMediaPlayer.setOnCompletionListener(new OnCompletionListener() {

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();
            }

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

Error :- setDataSource called in state 32

谢谢.

推荐答案

从该错误看来,MediaPlayer的先前实例未完全释放.播放完成后,调用onCompletionListener时,播放器将处于已暂停状态.您能否在发布stop MediaPlayer之前先stop MediaPlayer?

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();
...

这篇关于当MediaPlayer完成播放第一个音频时,MediaPlayer更改数据源错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆