当 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 状态。你能在发布之前请stop
MediaPlayer
吗?
mMediaPlayer.stop();
mMediaPlayer.release();
mMediaPlayer = NULL;
mMediaPlayer = new MediaPlayer();
...
【讨论】:
以上是关于当 MediaPlayer 完成播放第一个音频时,MediaPlayer 更改数据源错误的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 MediaPlayer 对象在 Android 中播放许多音频文件
android:使用单个 mediaplayer 对象播放音频文件并显示图像