1.Android MediaPlayer多媒体视频系统框架简介
Mediaplayer是Android系统中最为复杂的媒体播放器, MediaPlayer既可以播放本地的视音频流也可以播放网络的视音频流,Android系统中将Mediaplayer播放器封装成了一个多媒体播放类,因此APP上层开发时需要播放视频时只需要调用MediaPlayer多媒体播放类中对应接口即可,无需关注MediaPlayer具体功能的实现。
MediaPlayer的上层实现是基于Android基本库中Binder机制采用C/S架构进行进程间通讯以便将APP层对MediaPlayer操作指令传给底层;底层是由底层player多媒体系统实现播放器的具体功能(底层player多媒体系统不是该文章的讨论内容)接下来会针对Mediaplayer多媒体系统框架进行详细分析。
2.MediaPlayer多媒体类对外提供的主要接口总结如下:
接口方法 |
接口方法说明 |
setDataSource |
设置多媒体数据来源(位置) |
setVideoSurface Texture |
设置用SurfaceHolder来显示多媒体 |
prepare |
准备(同步) |
PrepareAsync |
准备(异步) |
start |
开始播放 |
stop |
停止播放 |
reset |
重置MediaPlayer为刚刚创建的状态 |
getCurrentPostion |
获取当前播放位置 |
getDuration |
获取文件的时长 |
isPlaying |
获取MediaPlayer的播放状态 |
pause |
暂停 |
seekTo |
指定播放的位置(以毫秒为单位) |
setLooping |
设置是否循环播放 |
release |
释放MediaPlayer相关的资源 |
3.MediaPlayer状态图如下:
3.1. Idle (闲置) 状态和 End (结束) 状态
MediaPlayer对象声明周期 : 从 Idle 到 End 状态就是 MediaPlayer 整个生命周期;