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

企鹅博客
企鹅博客
企鹅博客
30163
文章
0
评论
2020年9月15日08:10:18 评论 8 views 640字阅读2分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);

weinxin
欢迎加入中国站长博客之家
本站的所有资源都会上传分享到博客之家,希望大家互相学习交流进步。
关于 Python 字符串 Linux编程

关于 Python 字符串

字符串 字符串的处理是编译语言中不可缺少的部分,特别是在输入输出的时候,Python字符串的处理比较多样,便捷。 一.字符串拼接 Python字符串的拼接结合了Java和C语言的形式,但是形式上多了很...
Java数组及其内存分配 Linux编程

Java数组及其内存分配

几乎所有的程序设计语言都支持数组。Java也不例外。当我们需要多个类型相同的变量的时候,就考虑定义一个数组。在Java中,数组变量是引用类型的变量,同时因为Java是典型的静态语言,因此它的数组也是静...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: