Android MediaPlayer 播放prepareAsync called in state 8解决办法
【摘要】
使用android MediaPlayer播放音频文件时,有时会出现prepareasync called in state 8错误。
以下方法可以避免这个异常出现。
1
...
使用android MediaPlayer播放音频文件时,有时会出现prepareasync called in state 8错误。
以下方法可以避免这个异常出现。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
private void playAudio(String audioUri){
Uri uri = Uri.parse(audioUri);
mMediaPlayer = MediaPlayer.create(getApplicationContext(), uri);
try {
//在播放之前先判断playerMusic是否被占用,这样就不会报错了
if (mMediaPlayer != null ) {
mMediaPlayer.stop();
}
mMediaPlayer.prepare();
mMediaPlayer.start();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
|
另一种解决办法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
try {
if (!isPlaying) {
isPlaying = true ;
//装载资源
mediaPlayer = MediaPlayer.create(PlaySDMp3Activity. this , R.raw.trouble);
isReleased = false ;
mediaPlayer.setLooping( true );
mediaPlayer.start();
mTextView.setText( "当前正在播放音乐!" );
}
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
|
MediaPlayer.create(context,resId)这个方式配置数据源后,就完成了初始化,所以不用prepare可以直接start了
文章来源: markwcm.blog.csdn.net,作者:黄啊码,版权归原作者所有,如需转载,请联系作者。
原文链接:markwcm.blog.csdn.net/article/details/50237149
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)