Android MediaPlayer

一、官方文档

https://developer.android.com/reference/android/media/MediaPlayer.html

二、状态机

State Diagram

三、核心内容

  • MediaPlayer的生命周期是从new对象或reset方法起,到release方法为止,即Idle至End
  1. 在构造函数后调用getDuration等方法,不回触发OnErrorListener的onError方法,但reset之后直接调用会触发
  2. 一旦不需要使用MediaPlayer,调用release方法可以立即释放资源,同时该player对象会永远处于End状态
  3. new出来的MediaPlayer处于Idle状态,create方法初始化的MediaPlayer处于Prepared状态
  4. 只能在MediaPlayer的Idle状态调用setDataSource方法,其他状态下调用会报错
  5. 在Preparing状态下调用的任何方法都有可能引起未知的错误
  6. 只能在MediaPlayer的Initialized状态下调用prepare或prepareAsync方法,其他状态下调用会报错
  7. MediaPlayer一定要处于Prepared状态下时才能开始播放
  8. 如果MediaPlayer已经处于Started状态了,那么再次调用start方法不会起作用
  9. 在Started和Paused之间的状态变化是异步的,会有秒级的耗时,这时候isPlaying方法的返回值可能不准确
  10. 在Started、Paused、Prepared或PlaybackCompleted状态调用stop都会进入Stoped状态
  11. seekto方法是即时的,但需要一定时间缓冲内容,缓冲完成后OnSeekCompleteListener会被触发

你可能感兴趣的:(Android MediaPlayer)