专栏首页梦_之_旅【CSDN同名】Android MediaPlayer 播放prepareAsync called in state 8解决办法

Android MediaPlayer 播放prepareAsync called in state 8解决办法

使用android MediaPlayer播放音频文件时,有时会出现prepareasync called in state 8错误。

以下方法可以避免这个异常出现。

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

另一种解决办法:

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了

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • PHP批量添加数据

    梦_之_旅
  • thinkphp实现163、QQ邮箱收发邮件的方法

    用了很长时间去一步一步摸索,终于先在163 网易邮箱上测试成功了,下面就把这个过程分享给大家。

    梦_之_旅
  • system C Language

    句柄:一个long型的数据,它是windows用来标识被应用程序所建立或使用的对象的唯一整数

    梦_之_旅
  • 真正掌握vuex的使用方法(七)----完结

    之前的文章当中,我们把所有的数据都存放到了 vuex文件夹当中的store.js当中。但随着将来项目的复杂度增大,共享的状态越来越多,越来越复杂!在这个时候我们...

    用户1272076
  • 内行必看!Python Re 模块超全解读!

    “?” :0次或1次,match,search 不会出现none,会出现’ ‘ (因为0次也是符合的)

    马哥linux运维
  • 史上最全 Python Re 模块讲解

    “?” :0次或1次,match,search 不会出现none,会出现’ ‘ (因为0次也是符合的)

    昱良
  • Python Re 模块最全解读: 11703 字帮你彻底掌握

    re模块下的函数 compile(pattern):创建模式对象 import re pat=re.compile('A') m=pat.search('CBA...

    小小科
  • iPhone丢失了怎么办 找回iPhone终极教程

    Java学习123
  • 小技巧-把CMD添加到右键

    在生活工作和学习中,我们经常会用到Windows的CMD命令窗口,通常我们的做法是 Win + R 然后输入 CMD 后回车打开命令窗口或者在电脑的左下角搜索所...

    编程大道
  • JS控制Video播放器(快进、后退、播放、暂停、音量大小)

    比如:向上键对应的keyCode为38,向下键对应的keyCode为40,向左键对应的keyCode为37,向右键对应的keyCode为39,空格键对应的key...

    用户1518699

扫码关注云+社区

领取腾讯云代金券