涉及到音乐播放,学习googlesample中的ump,结合官网中的Guide
架构预览
实现一个音乐播放器,要是不使用任何设计,简单思路如下:
- 获取多媒体文件,扫描本地或远程获取
- 使用一个设想中、应有的、可以解码多媒体文件的
播放器
,对文件播放,暂停,快进…等等操作 - 将
播放器
播放状态同步到UI - UI可以包括:
- 展示封面的控制按钮的主播放页面、
- 在音乐列表中悬浮一个底部控制栏,(而这个底部控制栏应该可以在多个acitivity中同时存在,方便用户控制)
- 通知栏控制器
- 锁屏页面控制器
问题:真正播放的音乐的播放器
和UI的生命周期是不同步,且存在很多个UI可以控制播放
,可以设想会使用Service来做播放器
的容器…(大概只能想到这么多了.)
Android中多媒体播放,包括音频和视频,使用了统一的接口架构,虽有区分,整体上还是很统一的使用了C/S架构。
UI抽象了使用了一个 Media Controller
,在UI中创建和维护,多个UI维护多个控制器。
Media Contrller
通过服务中的MediaSession
,对播放器操作,并实时返回播放状态
MediaBrower
和MediaBrowerService
负责两者的连接,交互实现。
具体实现包括下面4个步骤:
1.创建了一个多媒体浏览的服务
这个服务存活于音乐播放过程中,也包括一个多媒体会话,管理客户端的连接。
2. 创建一个多媒体浏览的的客户端
客户端包括一个控制器,负责与服务的连接和交互
3.会话的回调实现
描述如何管理多媒体会话和服务,以及其他应用组件如通知和广播接收器。
4. Activity如何管理多媒体浏览服务
activity如何管理播放状态,还有可以提供多媒体库给其他应用,复用。
mdjz 我说了啥玩意…