一、MediaPlayerService介绍
MediaPlayerService是Android中提供的一个基于Binder机制的多媒体服务,它实现了IMediaPlayerService接口,用于提供多媒体播放相关服务。MediaPlayerService在Android系统启动后就被创建,它扮演者多个应用程序之间共享音频服务的角色,例如,多个应用程序可以使用同一个MediaPlayerService来播放音频。MediaPlayerService实现了监听不同事件的Listener,如媒体播放完成、媒体出错或者出现没有音频或视频数据等情况。
MediaPlayerService可以支持多个MediaPlayer对象同时运行。MediaPlayerService还用于管理不同mediaplayer实例之间的AudioFocus,调整不同mediaplayer实例的音量,以及处理多媒体数据与AudioSession的相关信息。
MediaPlayer是客户端,也就是我们所说的C/S模型中的C端,即Client。
MediaPlayerService和Media Player Service::Client是服务端,也就是我们所说的C/S模型中的S端,即Server端。
MediaPlayerService实现IMediaPlayerService定义的业务逻辑,其主要功能是根据MediaPlayer::setDataSource输入的URI调用create函数创建对应的player。
MediaPlayerService::Client实现IMediaPlayer定义的业务逻辑,其主要功能包括start、stop、pause、resume,其是通过调用MediaPlayerService create的player中的对应方法来实现具体功能的。
同Transact方法可以向远端的IBinder对象发出调用