Android MediaPlayer

一、官方文档

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

二、状态机

State Diagram
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会被触发
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、MediaPlayer的生命周期 有两种类型的弧,单箭头表示的是同步方法调用,有两个箭头代表异步方法调用 1、...
    i冰点阅读 10,579评论 0 7
  • 本文主要介绍MediaPlayer介绍之状态图及生命周期,围绕以下两个部分进行介绍:1,MediaPlayer状态...
    Clearlee阅读 8,734评论 0 10
  • Android的多媒体框架支持各种常见的多媒体类型,这样在程序中可以很容易地集成音频、视频或者图片。Android...
    _Ryan阅读 61,805评论 13 54
  • 大家喜欢我的《L与Y》吗? 写这个文章就是为了让有爱人的人能够鼓起勇气!大胆告白!也是祝天下有情人终成眷属! 加上...
    四夕日木阅读 1,501评论 0 1
  • 行动派的创始人琦琦说过,4个投资回报最高的事情,读书、旅行、学习、冥想,恰恰都是我们大部分人所匮乏的。 第一, 读...
    goen8715阅读 4,057评论 0 0