Mediaplayer报错

prepareAsync called in state 1
 
 
是因为在setDataSource之前调用了prepare。因为setDataSource放到了线程里,忘了start(事实证明也不能放到线程中,因为会和prepareAsync异步执行,导致还没setDataSource,就prepareAsync了)
 
Error (-38, 0) stop called in state 0
是因为 比如还没播放,用户就点了返回。没start() 没prepare(),就直接stop() 了
 
start called in state 64
是因为stop()之后直接start()播放了,没有重新prepare()。
 

容易ANR的:reset() release() setDataSource() prepare()(所以要用prepareAsync,但是要设置prepared监听,准备完才能播放start)

media server died错误,需要实现接口 onErrorListener(on Error())。在what == MediaPlayer.MEDIA_ERROR_SERVER_DIED 时,重新reset,release,置null,然后 new MediaPlayer(), 再从setDataSource开始流程

@Override
public boolean onError(MediaPlayer mp, int what, int extra) { if(what == MediaPlayer.MEDIA_ERROR_SERVER_DIED){
Log.d("VideoPlayer", "MEDIA_ERROR_SERVER_DIED");
try{
reInitVideoPlayer();
}catch(Exception e){ }finally{
playVideo(mLoadingImage);
} }
return false;
}

reset()         在重置MediaPlayer的时候使用,重置完,重新setDataResource prepare start,播放下一首。

In order to reuse a MediaPlayer object that is in the Error state and recover from the error, reset() can be called to restore the object to its Idle state.

也就是说,为了重用处于Error错误状态的MediaPlayer对象,可以通过调用reset()方法,使其恢复到idle空闲状态。

release()     不是每首歌之后都release,而是最后不用MediaPlayer了。比如在onPause或者 onDestroy里边调用。

Mediaplayer的更多相关文章

  1. Mediaplayer error (-19,0)

    Android MediaPlayer 发生 error (-19,0) 错误解决方法. 引起原因:由于多次实例化MediaPlayer.start() 进行播放操作引起的.由于没有及时释放内存资源导 ...

  2. 关于从Activity A跳转到Activity B ,其中Activity A中有一个VideoView,Activity B中有一个MediaPlayer。

    两个不同的视频的跳转, 前面我是在onStop()方法中销毁VideoView(因为MediaPlayer是全局共用的,而VideoView内包含MediaPlayer),但是每次进入Activity ...

  3. Android四大组件--MediaPlayer详解(转)

    一. MediaPlayer 状态机 介绍 Android MediaPlayer 状态即图例 : 1. Idle (闲置) 状态 和 End (结束) 状态 MediaPlayer 对象声明周期 : ...

  4. Android音视频之MediaPlayer音视频播放

    前言: 昨天总结了视频录制,今天来学习一下视频的播放,Android的视频播放主要采用MediaPlayer类. MediaPlayer介绍 MediaPlayer类可用于控制音频/视频文件或流的播放 ...

  5. Android音频开发之MediaRecorder/MediaPlayer

    前言: 上次我们介绍了实时采集音频数据以及播放,今天我们来认识一下直接录制文件的方式. 直接上代码:录制管理类 public class MediaRecorderManager { public s ...

  6. WPF语音播放MediaPlayer

    private MediaPlayer player; public MainWindow() { InitializeComponent(); player = new MediaPlayer(); ...

  7. android下面使用SurfaceView+ mediaPlayer播放视频

    final SurfaceView surfaceView = new SurfaceView(StartupActivity.this); StartupActivity.this.mediaPla ...

  8. SAP播放本地视频及音频(仅限于window MediaPlayer可播放文件)

    这个是从SCN上看到的,自己稍加修改,编制,做的还可以,可以播放视频,音频,唯一的不足就是不能控制播放视频的显示窗口大小,希望有人能帮忙解决,感激! 视频播放类:(新建类Z_CL_MEDIA,点击基于 ...

  9. [原创]WPF应用MediaPlayer播放声音断续、不全解决方案

    1.检查扬声器和驱动程序. 测试方法:首先,应用Windows Media Player播放器播放,看是否有问题,如果有问题,基本断定是驱动程序问题.其次,点击扬声器,选择测试,查看扬声器是否好用,如 ...

  10. Android MediaPlayer的生命周期

    MediaPlayer的状态转换图也表征了它的生命周期,如下: 这张状态转换图清晰的描述了MediaPlayer的各个状态,也列举了主要的方法的调用时序,每种方法只能在一些特定的状态下使用,如果使用时 ...

随机推荐

  1. spring: @Pointcut给重复的注解/切点定义表达式

    代码如下: package ch2.test; import org.aspectj.lang.annotation.AfterReturning; import org.aspectj.lang.a ...

  2. ural 2015 Zhenya moves from the dormitory(模拟)

    2015. Zhenya moves from the dormitory Time limit: 1.0 secondMemory limit: 64 MB After moving from hi ...

  3. 八大排序算法原理以及Java实现(直接插入排序)

    概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存. 我们这里说说八大排序就是内部排序. 当n较大, ...

  4. Node.js 常用工具 (util.inherits)

    util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心JavaScript 的功能 过于精简的不足. util.inherits util.inherits(constructor ...

  5. linux 日常使用命令

    ●安装和登录命令:login.shutdown.halt.reboot.mount.umount.chsh ●文件处理命令:file.mkdir.grep.dd.find.mv.ls.diff.cat ...

  6. Jupyterhub Error 503: Proxy Target Missing

    Jupyterhub Error 503: Proxy Target Missing 请求太频繁

  7. CodeForces - 688C:NP-Hard Problem (二分图&带权并查集)

    Recently, Pari and Arya did some research about NP-Hard problems and they found the minimum vertex c ...

  8. java 守护线程整理

    java中finally语句不走的可能存在system.exit(0)与守护线程 线程sleep采用TimeUnit类 设定线程的名字thread.getcurrentThread().setName ...

  9. C#程序性能优化

    http://blog.csdn.net/scalzdp/article/details/34421639 程序中我们每一丝动作都会加大程序运行的负担,当刚开始学习程序的时候常常不会去考虑程序运行的效 ...

  10. CAS环境搭建-证书方式(https连接)

    一.教程前言 1 教程目的:从头到尾细细道来单点登录服务器及客户端应用的每个步骤 2 单点登录(SSO):请看<CAS简介> 3 本教程使用的SSO服务器是Yelu大学研发的CAS(Cen ...