Android Multimedia框架总结(一)MediaPlayer介绍之状态图及生命周期

请尊重分享成果,转载请注明出处:

http://blog.csdn.net/hejjunlin/article/details/52349221

前言:从本篇开始,将进入Multimedia框架,包含MediaPlayer, Camera, Surface, MediaRecord, 接下来几篇都是MediaPlayer相关。同样看下Agenda如下:

  • MediaPlayer的状态图
  • Idle 状态
  • End 状态
  • Error 状态
  • Initialized状态
  • Prepared状态
  • Preparing状态
  • Started状态
  • Paused状态
  • Stopped状态
  • PlaybackCompleted状态

MediaPlayer介绍

MediaPlayer类是用于控制playback的视频/音频文件及流。

主要覆盖如下以下方面:

  • 状态图
  • 有效状态及无效状态
  • 权限
  • 回调方法

MediaPlayer的状态图

playback控制视频/音频文件及流是被状态机进行管理。下图显示MediaPlayer生命周期以及由playback控制操作所影响。

椭圆代表MediaPlayer驻留的状态

弧代表playback控制且驱动MediaPlayer状态进行过渡。

有两种类型的弧,一种是用单箭头表示的是同步方法调用,另一种有两个箭头代表异步方法调用

从状态图中,我们能看到MediaPlayer有如下一些状态:

Idle 状态及End 状态

Error 状态

Initialized状态

Prepared状态

Started状态

Paused状态

Stopped状态

PlaybackCompleted状态

第一时间获得博客更新提醒,以及更多android干货,源码分析,欢迎关注我的微信公众号,扫一扫下方二维码或者长按识别二维码,即可关注。

如果你觉得好,随手点赞,也是对笔者的肯定,也可以分享此公众号给你更多的人,原创不易

时间: 2024-10-23 11:46:14

Android Multimedia框架总结(一)MediaPlayer介绍之状态图及生命周期的相关文章

Android Multimedia框架总结(七)C++中MediaPlayer的C/S架构补充及MediaService介绍

http://blog.csdn.net/hejjunlin/article/details/52465168 前面一篇主要介绍c++中MediaPlayer的C/S架构中和Client相关部分,并中间穿插了mediaplayerservice的部分.但是对于这块C/S部分,没有放大去分析.<Android Multimedia框架总结(四)MediaPlayer中从Java层到C++层类关系及prepare及之后其他过程>是从整体上看的,今天我们把这块C/S模型放大去看下.同样先看下Agen

Android Multimedia框架总结(六)C++中MediaPlayer的C/S架构

http://blog.csdn.net/hejjunlin/article/details/52435789 前面几节中,都是通过java层调用到jni中,jni向下到c++层并未介绍 看下Java层一个方法在c++层 MediaPlayer后续过程 frameworks/av/media/libmedia/MediaPlayer.cpp 找一个我们之前熟悉的setDataResource方法看下C/S模式的过程,亦可参考Android Multimedia框架总结(四)MediaPlayer

Android Multimedia框架总结(九)Stagefright框架之数据处理及到OMXCodec过程

转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼:http://blog.csdn.net/hejjunlin/article/details/52532085 不知不觉到第九篇了,感觉还有好多好多没有写,路漫漫其修远兮 ,吾将上下而求索,上篇主要介绍了Stagefright框架及AwesomePlayer的数据解析器,最后我们说道,涉及parse及decode部分,将在本篇中介绍,看下今天的Agenda: 两张图看数据走向 AwesomePlayer中prepare过程 Awesom

Android Multimedia框架总结(二十)MediaCodec状态周期及Codec与输入/输出Buffer过程(附实例)

转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/53183718 前言:前面几节都是介绍Camera2相关,对于Camera2预览把图像显示在SurfaceView上,还有录像时,时时刷新当前图像区域.追溯到最早介绍的MediaPlayer播放视频,这些都离不开重要角色MediaCodec,今天介绍MediaCodec,看下Agenda: MediaCodec是什么? codec操

Android Multimedia框架总结(十三)CodeC部分之OpenMAX框架初识及接口与适配层实现

转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/52629598 前言:上篇中介绍OMX事件回调,从今天开始,走入Codec部分之OpenMAX框架里.看下今天的Agenda如下: 一张图回顾音视频同步 一张图看清OpenMAX在Android系统中位置 OpenMAX是什么 OpenMax IL简介 OpenMax IL结构 Android中OpenMax的使用情况 OpenMa

Android开发之Fragment的介绍、使用及生命周期

Fragment官网介绍-http://developer.android.com/guide/components/fragments.html 1.Fragment简介及两个版本介绍 Fragment是Android3.0(API 11)引入的. Fragment和Activity的关系(引用官网原话):You can combine multiple fragments in a single activity to build a multi-pane UI and reuse a fr

Android(java)学习笔记170:Activity的生命周期

1.首先来一张生命周期的总图: 2.几个典型的场景 (1)Activity从被装载到运行,执行顺序如下: onCreate()  ->    onStart() ->  onResume(): (2)Activity从运行到暂停,再到继续回到运行 onPause() ->  onResume ()        这个过程发生在Activity被别的Activity遮住了部分UI,失去了用户焦点,另外那个Activity退出之后,这个Activity再次获得运行.整个过程中,该Activi

【Android 细节(二)】业务操作类的生命周期中的开始方法

为了防止内存泄露或者其他更重要的原因,为业务操作类构建生命周期是必不可少的. 即在类里封装onStart(),onPause(),onFinish()方法.比如我要写一个Android中处理数据库的业务类,他的特点是所有的数据操作是以key-value的方式存储. Databaser.java: <span style="font-family:Microsoft YaHei;font-size:18px;">// 构造方法 public PhoneDbAdapter(Co

Android Multimedia框架总结(四)MediaPlayer中从Java层到C++层类关系及prepare及之后其他过程

转载请把头部出处链接和尾部二维码一起转载,本文出自:http://blog.csdn.net/hejjunlin/article/details/52420803 前言:在上篇中,分析了MediaPlayer的从创建到setDataSource过程,尽管看了代码,但是没有从MediaPlayer生态上认识各类库之间依赖调用关系,在本篇中将作一个补充整体上的认识.看下今天的Agenda: MediaPlayer各个so库之间关系结构图 MediaPlayer各个具体类之间依赖关系图 prepare