Service side includes 3 components: Service, Service_client and Service_Impementation
Service: it will be regiestered to ServiceManager, so Client can locate it, then call Service to create an Service_Client.
Service_Client: it will handle each play command ( start, stop, seek, etc. ) from Client. it is actually a peer of Client on Service side.
Serivce_Implemenation: it is the function doer, Service_Client will call it when receiving Client request. In other words, Service_Client is an adapter from Client to Serivce_Implemenation
Client: Running on Apps process Called by Java via JNI or other native apps to request video play.
Call sequences
Below diagram shows the sequences of 3 catagories
1) Create:
Apps -> MediaPlayer -> MediaPlayerServcie -> MediaPlayerServcie::Client -> MediaPlayerBase ( concrete class is like: StagefrightPlayer )
2) Start ( Call forward)
Apps -> MediaPlayer ->MediaPlayerServcie::Client-> MediaPlayerBase (StagefrightPlayer)
3) Call back
MediaPlayerBase (StagefrightPlayer) -> MediaPlayerServcie::Client ->MediaPlayer
(check more from the diagram)
本文详细介绍了Android中MediaPlayer的调用关系,包括Service侧的Service、Service_client和服务实现(Service_Implementation)组件。Service负责注册到ServiceManager,以便客户端定位并创建Service_client。Service_client作为客户端在服务端的代理,处理播放命令。Service_Implementation则是实际执行功能的部分。客户端通过JNI或其他原生应用请求视频播放。文章还概述了创建、启动和回调的调用序列。
3292

被折叠的 条评论
为什么被折叠?



