Java层
media/media
类说明:
|
类名 |
说明 |
|
IMediaRouterClient |
媒体路由服务的客户端接口 |
|
IMediaRouterService |
媒体路由服务接口 |
|
IRemoteControlClient | |
|
IRemoteControlDisplay | |
|
IRemoteDisplayCallback | |
|
IRemoteDisplayProvider | |
|
IRemoteVolumeObserver |
类说明:
|
类名 |
说明 |
|
MediaRouter | |
|
MediaRouter.Static | |
|
MediaRouter.Client |
继承实现IMediaRouterClient,通知MediaRouter路由服务状态变化 |
|
MediaRouter. RouteCategory |
媒体路由分类,用户可以创建 |
|
MediaRouter. RouteInfo |
来源,类型: mDefaultAudioVideo,mSystemCategory MediaRouterService,mSystemCategory WifiDisplay,mSystemCategory AudioRoutesInfo,mSystemCategory |
|
MediaRouter. UserRouteInfo |
用户创建的媒体路由,继承RouteInfo 包含一个RemoteControlClient |
|
MediaRouter. RouteGroup |
媒体路由分组,包含多个媒体路由,继承RouteInfo SystemCategory不支持分组,用户可以创建分组路由 |
|
MediaRouter. VolumeCallbackInfo | |
|
MediaRouterClientState |
包含多个RouteInfo,一个全局选择路由ID |
|
MediaRouterClientState.RouteInfo |
描述媒体路由信息 |
|
RemoteControlClient |
管理多个IRemoteControlDisplay |
|
RemoteControlClient. DisplayInfoForClient | |
|
RemoteControlClient.EventHandler | |
|
RemoteController | |
|
RemoteDisplay | |
|
RemoteDisplayState |
core/app
类说明:
|
类名 |
说明 |
|
MediaRouteActionProvider | |
|
MediaRouteSelector | |
|
MediaRouteButton | |
|
Presentation |
lib/media
类说明:
|
类名 |
说明 |
|
RemoteDisplay | |
|
RemoteDisplayProvider |
services/media_router
源代码位于:frameworks/base/services/java/com/android/server/media。
类说明:
|
类名 |
说明 |
|
MediaRouterService | |
|
RemoteDisplayProviderProxy |
管理与RemoteDisplayProvider服务的连接,实现ServiceConnection |
|
RemoteDisplayProviderProxy.Connection |
封装IRemoteDisplayProvider |
|
RemoteDisplayProviderWatcher |
监听应用增删事件,搜索响应RemoteDisplayProvider的服务,创建RemoteDisplayProviderProxy,并回调外部持有者 |
|
MediaRouterService. ClientRecord |
代表与MediaRouterService的一个客户会话,属于某个 |
|
MediaRouterService. UserRecord |
代表用户,包含多个ClientRecord,一个UserHandler |
|
MediaRouterService. UserHandler |
代表用户监听、管理多个RemoteDisplayProvider,包含一个RemoteDisplayProviderWatcher |
|
MediaRouterService. ProviderRecord |
代表RemoteDisplayProvider,包含多个RouteRecord |
|
MediaRouterService. RouteRecord |
代表一个路由,与一个RemoteDisplayInfo对应,转换为MediaRouterClientState.RouteInfo |
细节
- MediaRouter.UserRouteInfo.setPlaybackStream()
- RemoteControlClient.setPlaybackInformation()
- sendAudioServiceNewPlaybackInfo_syncCacheLock()
- IAudioService.setPlaybackInfoForRcc()
- sendAudioServiceNewPlaybackInfo_syncCacheLock()
- RemoteControlClient.setPlaybackInformation()
- RemoteControlClient.mIRCC.informationRequestForDisplay()【IRemoteControlClient接口】
- RemoteControlClient.mEventHandler.sendMessage()【消息】
- RemoteControlClient.sendPlaybackState_syncCacheLock()
- IRemoteControlDisplay.setPlaybackState()
- RemoteControlClient.sendPlaybackState_syncCacheLock()
- RemoteControlClient.mEventHandler.sendMessage()【消息】
本文详细介绍了Android MediaRouter的组件与接口,包括IMediaRouterClient、MediaRouterService、RemoteControlClient等,以及它们在媒体路由、远程控制中的作用。MediaRouter用于管理媒体路由,如系统音频、视频源,以及用户自定义路由。RemoteControlClient则涉及多媒体播放信息的管理和显示。同时,文章还提及了MediaRouteActionProvider、MediaRouteSelector等相关组件,以及MediaRouterService的内部实现,如ClientRecord、UserRecord和ProviderRecord等。
1060

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



