当 MediaPlayer 完成播放第一个音频时,MediaPlayer 更改数据源错误

Posted

技术标签:

【中文标题】当 MediaPlayer 完成播放第一个音频时,MediaPlayer 更改数据源错误【英文标题】:MediaPlayer change DataSource Error when MediaPlayer complets Playing First Audio 【发布时间】:2013-03-01 06:51:37 【问题描述】:

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

我的代码如下:- mMediaPlayer.setOnCompletionListener(新的 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();
            

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

谢谢。

【问题讨论】:

【参考方案1】:

从错误来看,MediaPlayer 的前一个实例似乎没有完全释放。播放完成后,调用onCompletionListener 时播放器处于Paused 状态。你能在发布之前请stopMediaPlayer吗?

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

【讨论】:

以上是关于当 MediaPlayer 完成播放第一个音频时,MediaPlayer 更改数据源错误的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 MediaPlayer 对象在 Android 中播放许多音频文件

android:使用单个 mediaplayer 对象播放音频文件并显示图像

如何正确设置 MediaPlayer 音频流类型

安卓第十六天笔记-音频与视频播放

Android Studio Java MediaPlayer 只播放音频的第一秒然后停止

你如何在 MediaPlayer 上播放 Android InputStream?