Most visited

Recently visited

MediaRouteProvider

public abstract class MediaRouteProvider
extends Object

java.lang.Object
   ↳ android.support.v7.media.MediaRouteProvider


媒体路由提供程序用于发布其他媒体路由以在应用程序中使用。 媒体路由提供者也可以被声明为一种服务,以向系统中的所有应用发布额外的媒体路由。

媒体路由提供者的目的是通过调用 setDescriptor(MediaRouteProviderDescriptor)来通知当前已注册的 MediaRouteProvider.Callback ,以发现满足当前 MediaRouteDiscoveryRequest指定标准的媒体路由并发布 MediaRouteProviderDescriptor以及关于每条路由的信息。

提供者应该通过实现onDiscoveryRequestChanged(MediaRouteDiscoveryRequest)并更新它试图发现的路线集来监视发现请求的更改。 它还应处理路线控制请求,如音量更改或media control intents是执行onCreateRouteController(String)以返回特定路线的MediaRouteProvider.RouteController

媒体路由提供者可以在单个应用程序范围内通过调用MediaRouter.addProvider将其添加到本地MediaRouterMediaRouter 通过在提供商的清单中注册MediaRouteProviderService ,媒体路由提供商也可以在全球范围内适用于所有应用。 当媒体路由提供商被注册为服务时,使用媒体路由器API的所有应用程序将能够发现并使用提供商的路由,而无需另外安装任何其他应用。

该对象只能在主线程上访问。

Summary

Nested classes

class MediaRouteProvider.Callback

当路由信息变得可用或改变时调用的回调。

class MediaRouteProvider.ProviderMetadata

描述路由提供者实现的属性。

class MediaRouteProvider.RouteController

提供对特定路线的控制。

Public constructors

MediaRouteProvider(Context context)

创建媒体路由提供程序。

Public methods

final Context getContext()

获取媒体路由提供程序的上下文。

final MediaRouteProviderDescriptor getDescriptor()

获取提供者的描述符。

final MediaRouteDiscoveryRequest getDiscoveryRequest()

获取当前的发现请求,通知提供者有关要发现的路由类型以及是否执行主动扫描。

final Handler getHandler()

获取与主线程关联的提供程序处理程序。

final MediaRouteProvider.ProviderMetadata getMetadata()

获取有关提供者实现的一些元数据。

MediaRouteProvider.RouteController onCreateRouteController(String routeId)

由媒体路由器调用以获取特定路由的路由控制器。

void onDiscoveryRequestChanged(MediaRouteDiscoveryRequest request)

discovery request发生变化时由媒体路由器调用。

final void setCallback(MediaRouteProvider.Callback callback)

设置提供程序的描述符更改时要调用的回调。

final void setDescriptor(MediaRouteProviderDescriptor descriptor)

设置提供者的描述符。

final void setDiscoveryRequest(MediaRouteDiscoveryRequest request)

设置发现请求以通知提供商其客户想要发现的路由种类以及是否执行主动扫描。

Inherited methods

From class java.lang.Object

Public constructors

MediaRouteProvider

MediaRouteProvider (Context context)

创建媒体路由提供程序。

Parameters
context Context: The context.

Public methods

getContext

Context getContext ()

获取媒体路由提供程序的上下文。

Returns
Context

getDescriptor

MediaRouteProviderDescriptor getDescriptor ()

获取提供者的描述符。

描述符描述了媒体路由提供者的状态以及它发布的路由。 通过注册callbacksetCallback(MediaRouteProvider.Callback)setCallback(MediaRouteProvider.Callback)描述符的变化。

Returns
MediaRouteProviderDescriptor The media route provider descriptor, or null if none.

也可以看看:

getDiscoveryRequest

MediaRouteDiscoveryRequest getDiscoveryRequest ()

获取当前的发现请求,通知提供者有关要发现的路由类型以及是否执行主动扫描。

Returns
MediaRouteDiscoveryRequest The current discovery request, or null if no discovery is needed at this time.

也可以看看:

getHandler

Handler getHandler ()

获取与主线程关联的提供程序处理程序。

Returns
Handler

getMetadata

MediaRouteProvider.ProviderMetadata getMetadata ()

获取有关提供者实现的一些元数据。

Returns
MediaRouteProvider.ProviderMetadata

onCreateRouteController

MediaRouteProvider.RouteController onCreateRouteController (String routeId)

由媒体路由器调用以获取特定路由的路由控制器。

当不再需要路由控制器释放其资源时,媒体路由器将调用路由控制器的 onRelease()方法。

Parameters
routeId String: The unique id of the route.
Returns
MediaRouteProvider.RouteController The route controller. Returns null if there is no such route or if the route cannot be controlled using the route controller interface.

onDiscoveryRequestChanged

void onDiscoveryRequestChanged (MediaRouteDiscoveryRequest request)

discovery request发生变化时,由媒体路由器调用。

每当应用程序调用 addCallback(MediaRouteSelector, MediaRouter.Callback)来注册回调时,它还提供了一个选择器来指定它感兴趣的路线种类。媒体路由器将所有这些选择器组合在一起以生成一个 MediaRouteDiscoveryRequest并在通过调用发生更改时通知每个提供者 setDiscoveryRequest(MediaRouteDiscoveryRequest)发布消息以异步调用此方法。

提供程序应检查发现请求media control categories中的selector以确定应该尝试发现哪些路由以及它是否应执行主动或被动扫描。 在很多情况下,供应商可以通过确定选择器不包含任何支持的类别来节省电力,因此可以避免执行任何扫描。

Parameters
request MediaRouteDiscoveryRequest: The new discovery request, or null if no discovery is needed at this time.

也可以看看:

setCallback

void setCallback (MediaRouteProvider.Callback callback)

设置提供程序的描述符更改时要调用的回调。

Parameters
callback MediaRouteProvider.Callback: The callback to use, or null if none.

setDescriptor

void setDescriptor (MediaRouteProviderDescriptor descriptor)

设置提供者的描述符。

提供者必须调用此方法来通知当前注册的 callback有关对提供者描述符的更改。

Parameters
descriptor MediaRouteProviderDescriptor: The updated route provider descriptor, or null if none.

也可以看看:

setDiscoveryRequest

void setDiscoveryRequest (MediaRouteDiscoveryRequest request)

设置发现请求以通知提供商其客户想要发现的路由种类以及是否执行主动扫描。

Parameters
request MediaRouteDiscoveryRequest: The discovery request, or null if no discovery is needed at this time.

也可以看看:

Hooray!