当MediaPlayer完成播放第一个音频时,MediaPlayer更改数据源错误 [英] MediaPlayer change DataSource Error when MediaPlayer complets Playing First Audio
问题描述
有关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屋!