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

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

第1种方法:

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

第2种方法:

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了,我们要时刻牢记NullPoint Exception,所以这里要加判断:

!isPlaying 和 mMediaPlayer != null

Android(java)学习笔记123:Android MediaPlayer 播放prepareAsync called in state 8解决办法的更多相关文章

  1. Android(java)学习笔记180:Android MediaPlayer 播放prepareAsync called in state 8解决办法

    使用android MediaPlayer播放音频文件时,有时会出现prepareasync called in state 8错误. 以下方法可以避免这个异常出现.  第一种方法: private ...

  2. Android开发学习笔记-关于Android的消息推送以及前后台切换

    下面是最简单的Android的消息推送的实现方法 package com.example.shownotic; import java.util.Random; import android.supp ...

  3. Java学习笔记47(JDBC、SQL注入攻击原理以及解决)

    JDBC:java的数据库连接 JDBC本质是一套API,由开发公司定义的类和接口 这里使用mysql驱动,是一套类库,实现了接口 驱动程序类库,实现接口重写方法,由驱动程序操作数据库 JDBC操作步 ...

  4. 学习笔记:IIS搭建PHP网站出现404错误的解决办法

    关于404错误提示相信大家都遇到过吧,记得我遇到这个问题的时候,弄得我焦头烂额的,今天给大家分享下,使用IIS大家PHP网站时出现404错误提示的处理方法,希望对各位朋友有所帮助.IIS搭建PHP出现 ...

  5. Android 数字签名学习笔记

    Android 数字签名学习笔记 在Android系统中,所有安装到系统的应用程序都必有一个数字证书,此数字证书用于标识应用程序的作者和在应用程序之间建立信任关系,如果一个permission的pro ...

  6. Android动画学习笔记-Android Animation

    Android动画学习笔记-Android Animation   3.0以前,android支持两种动画模式,tween animation,frame animation,在android3.0中 ...

  7. Android:日常学习笔记(6)——探究活动(4)

    Android:日常学习笔记(6)——探究活动(4) 活动的启动模式 standard模式 standard是活动默认的启动模式,在不进行显示定义的情况下,所有活动都会自动使用这种启动模式. stan ...

  8. Android Studio 学习笔记(一)环境搭建、文件目录等相关说明

    Android Studio 学习笔记(一)环境搭建.文件目录等相关说明 引入 对APP开发而言,Android和iOS是两大主流开发平台,其中区别在于 Android用java语言,用Android ...

  9. Android自动化学习笔记:编写MonkeyRunner脚本的几种方式

    ---------------------------------------------------------------------------------------------------- ...

随机推荐

  1. login.aspx.cs

    using System;                                                                 //指令+系统(命名空间)using Sys ...

  2. js实现星级评分之方法一

    利用一个星级评分的小案例,来逐步封装js星级评分插件. 从最基础的js知识,通过一个小的demo,逐步学习js的面向对象知识. 从浅到深,逐步递进. 图片素材 <!DOCTYPE html> ...

  3. 存储过程接收JSON格式数据

    前端有可能一次性上传多笔记录,并使用JSON序列化. 现在在MS SQL Server 2016版本上,可以直接处理JSO数据. 如下面的前端序列化的数据: DECLARE @json_string ...

  4. ue4 动画相关方法杂记

    加载资源文件中的 骨骼,动画,蒙太奇----------------------------------------- FName anis("/Game/FirstPerson/Anima ...

  5. 自动化测试工具 Test Studio入门教程

    Test Studio安装 可以到下载试用版 官网 http://www.telerik.com/teststudio , 装完以后需要装silverlight 安装好了,主界面是介个样子的 Test ...

  6. [Xcode 实际操作]六、媒体与动画-(14)使用SystemSoundId播放简短声音

    目录:[Swift]Xcode实际操作 本文将演示如何播放音频素材. 在项目名称上点击鼠标右键,弹出右键菜单, 选择[Add Files to "DemoApp"],往项目中导入文 ...

  7. 5G时代的智慧物流~圆通副总裁相峰

        图片来自“百度百科”   本文是圆通速递CEO.国家工程实验室主任相峰先生在2019全球物流技术大会的演讲,在演讲中,相峰先生主要阐述了自己对5G的看法以及5G在物流领域的应用.   以下是演 ...

  8. IDEA 小技巧之书签与收藏

    原文地址:IDEA 小技巧之书签与收藏 最近翻阅 Spring 源码,由于源码调用链路很长,等看了十几类方法之后,想看前面调用方法就很不方便,需要查找历史的查看记录.还有时候看着看着就忘了中间某个方法 ...

  9. 关于HTML5画布canvas的功能

    一.画布的使用 1.首先创建一个画布(canvas) <canvas id=”myCanvas” width=”200” height=”100” style=”border:1px solid ...

  10. 【SpringBoot】编写一个自己的Starter

    一.什么是Starter? 在开发过程中我们就经常使用到各种starter,比如mybatis-spring-boot-starter,只需要进行简单的配置即可使用,就像一个插件非常方便.这也是Spr ...