最近遇到一个问题,我在service里面播放一段音乐时遇到了IllegalStateException异常,代码是这样的:

protected void play() {System.out.println("play");mpMediaPlayer = MediaPlayer.create(this, R.raw.dd);try {mpMediaPlayer.prepare();} catch (IllegalStateException e) {e.printStackTrace();}catch (IOException e){e.printStackTrace();}mpMediaPlayer.start();mpMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {//设置重复播放@Overridepublic void onCompletion(MediaPlayer mediaPlayer) {mpMediaPlayer.start();mpMediaPlayer.setLooping(true);}});}

error:

08-16 14:47:09.822 21109-23341/com.shangyi.supplier W/System.err: java.lang.IllegalStateException
08-16 14:47:09.822 21109-23341/com.shangyi.supplier W/System.err:     at android.media.MediaPlayer._prepare(Native Method)
08-16 14:47:09.822 21109-23341/com.shangyi.supplier W/System.err:     at android.media.MediaPlayer.prepare(MediaPlayer.java:1193)
08-16 14:47:09.822 21109-23341/com.shangyi.supplier W/System.err:     at com.shangyi.service.SupplierService.play(SupplierService.java:139)
08-16 14:47:09.822 21109-23341/com.shangyi.supplier W/System.err:     at com.shangyi.service.SupplierService$1.run(SupplierService.java:61)
08-16 14:47:09.822 21109-23341/com.shangyi.supplier W/System.err:     at java.lang.Thread.run(Thread.java:833)

虽然也能播放,但是有异常不解决心里不爽,找了原因,说是java里面的mediaplayer对象的状态和native的对象状态不一致,mediaplayer的isPlaying方法引起的,后来改了一下:

protected void play() {System.out.println("play");mpMediaPlayer = MediaPlayer.create(this, R.raw.dd);try {
//            mpMediaPlayer.prepare();if(mpMediaPlayer.isPlaying()){mpMediaPlayer.stop();mpMediaPlayer.release();mpMediaPlayer = MediaPlayer.create(this, R.raw.dd);}mpMediaPlayer.start();} catch (IllegalStateException e) {e.printStackTrace();}mpMediaPlayer.start();mpMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {//设置重复播放@Overridepublic void onCompletion(MediaPlayer mediaPlayer) {mpMediaPlayer.start();mpMediaPlayer.setLooping(true);}});}

android开发 java.lang.IllegalStateException at android.media.MediaPlayer._prepare(Native Method)相关推荐

  1. Caused by:java.lang.IllegalStateException at android.media.MediaPlayer._setDataSource(Native Method)

    使用Mediaplayer播放本地音频,在第二次调用mediaplayer.setDataSource()时报错如下: Caused by: java.lang.IllegalStateExcepti ...

  2. ANDROID开发java.lang.NoClassDefFoundError: com.baidu.location.LocationClient的解决办法

     ANDROID开发java.lang.NoClassDefFoundError: com.baidu.location.LocationClient的解决办法 java.lang.NoClassDe ...

  3. [Android Pro] java.lang.IllegalStateException: Fragment(XXFragment) not attached to Activity异常

    [Android Pro] java.lang.IllegalStateException: Fragment(XXFragment) not attached to Activity异常 参考文章: ...

  4. 安卓开发 java.lang.IllegalStateException isPlaying() 解决方案

    安卓开发,友盟日志 抛出异常 MediaPlayer : java.lang.IllegalStateException at android.media.MediaPlayer.isPlaying( ...

  5. 【排错日记】java.lang.IllegalStateException: It is illegal to call this method if the current...

    情景:AOP获取请求参数,并转成JSON字符串时抛出 原因: ServletRequest,ServletResponse,MultipartFile不能被序列化,需要排除之后再做序列化. 示例: O ...

  6. android java.lang.illegalstateexception,Android异常 java.lang.IllegalStateException解决方法

    Android异常详情介绍 这种异常我遇到以下两种情况: 1. java.lang.IllegalStateException: No wrapped connection. 2.java.lang. ...

  7. java.lang.IllegalStateException: Ambiguous mapping found. Cannot map ' ' bean method

    问题:springmvc 启动时出现Caused by: java.lang.IllegalStateException: Ambiguous mapping found. Cannot 原因:控制层 ...

  8. android开发java环境_搭建Android开发环境 - Android - mobile - JavaEye论坛

    Android的开发现在是如火如荼,逞现在不是很忙了,学习了下,这里记录下了在windows在如何搭建Android开发环境,对自己是个记录,对新入门的兄弟姐妹们可以参考一下! (1)安装JDK,省略 ...

  9. Android lottie java.lang.IllegalStateException: Missing values for keyframe

    使用Lottie动画的时候,运行发现了此报错,版本为2.4.0,在经过几番的测试后,更改了资源文件和xml里面的配置也不大行. tips:一定要在xml里面配置资源文件,当你把资源文件raw里面的时候 ...

最新文章

  1. 安卓天天酷跑脚本刷高分图文教程
  2. Ubuntu14.04下安装wechat(微信)
  3. R语言可视化分面图、假设检验分组t检验、可视化单变量分组分面箱图(faceting boxplot)并添加p值(Make facet boxplot and add p-values)、添加抖动数据点
  4. String 和Integer、int之间互转
  5. mysql 位操作支持
  6. UCScript——C++集成脚本
  7. 大小不固定的图片、多行文字的水平垂直居中
  8. 四川大学2012年数学分析考研试题
  9. 中国电信:5G 手机可实现不换卡号;新西兰否认禁用华为;Visual Studio 2019 正式发布!| 极客头条...
  10. sql server 2005练习集(基础)
  11. 树形$dp$学习笔记
  12. 每当Xcode升级之后,都会导致原有的Xcode插件不能使用,解决办法
  13. nginx location总结
  14. 【数学建模】CUMCM-2010A 储油罐的变位识别与罐容表标定 解题思路整理
  15. win7电脑蓝屏没有修复计算机,技术编辑教您win7电脑蓝屏怎么办
  16. android开发塔防游戏机,上手快又耐玩 五款Android平台塔防类游戏推荐
  17. K8S学习笔记之将Google的gcr.io、k8s.gcr.io 换为国内镜像
  18. Android动画特效(《安卓群英传》实例)
  19. 【NOIP模拟】序列
  20. 互联网早报:阿里巴巴淘菜菜发布“本地菜”计划,直连近300个菠菜种植基地

热门文章

  1. realsense系列(三):播放深度图和RGB图
  2. “淘宝” 开放平台接口设计思路
  3. 关于PCB的机械层和差分布线、RC滤波
  4. Ucenter的用户注册和登录分析
  5. photoshop使用“选择并遮住”功能快速扣头发
  6. 关于spoolsv.exe 报错,并打印服务停止的问题
  7. Office2016安装报错:1935安装程序集组件发生错误
  8. AI vs ML:有什么区别?
  9. 解决服务器80端口占用问题
  10. python 线程池 concurrent.futures ThreadPoolExecutor