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()【消息】