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