Most visited

Recently visited

Added in API level 16

MediaRouter

public class MediaRouter
extends Object

java.lang.Object
   ↳ android.media.MediaRouter


MediaRouter允许应用程序控制从当前设备到外部扬声器和目标设备的媒体通道和流的路由。

MediaRouter通过 Context.getSystemService()Context.MEDIA_ROUTER_SERVICE检索。

媒体路由器API不是线程安全的; 所有与它的交互都必须从流程的主线程完成。

Summary

Nested classes

class MediaRouter.Callback

用于接收有关媒体路由更改事件的接口。

class MediaRouter.RouteCategory

一类路线的定义。

class MediaRouter.RouteGroup

有关由多个其他路由组成的路由的信息。

class MediaRouter.RouteInfo

有关媒体路线的信息。

class MediaRouter.SimpleCallback

存根实施MediaRouter.Callback

class MediaRouter.UserRouteInfo

有关应用程序可以定义和修改的路线的信息。

class MediaRouter.VolumeCallback

接收有关音量变化的事件的界面。

Constants

int CALLBACK_FLAG_PERFORM_ACTIVE_SCAN

标志为 addCallback(int, MediaRouter.Callback) :在回调被注册时主动扫描路由。

int CALLBACK_FLAG_UNFILTERED_EVENTS

标志为 addCallback(int, MediaRouter.Callback) :不要过滤路由事件。

int ROUTE_TYPE_LIVE_AUDIO

现场音频的路线类型标志。

int ROUTE_TYPE_LIVE_VIDEO

直播视频的路线类型标志。

int ROUTE_TYPE_USER

路线类型标志用于应用程序特定用途。

Public methods

void addCallback(int types, MediaRouter.Callback cb, int flags)

添加回调来收听有关特定媒体路线的事件。

void addCallback(int types, MediaRouter.Callback cb)

添加回调来收听有关特定媒体路线的事件。

void addUserRoute(MediaRouter.UserRouteInfo info)

将Media应用程序指定的媒体路由添加到MediaRouter。

void clearUserRoutes()

从MediaRouter中删除所有应用指定的路由。

MediaRouter.RouteCategory createRouteCategory(int nameResId, boolean isGroupable)

创建一个新的路线类别。

MediaRouter.RouteCategory createRouteCategory(CharSequence name, boolean isGroupable)

创建一个新的路线类别。

MediaRouter.UserRouteInfo createUserRoute(MediaRouter.RouteCategory category)

创建一个新的用户路线,该路线可能会被修改并注册以供应用程序使用。

MediaRouter.RouteCategory getCategoryAt(int index)

在给定索引处返回 category

int getCategoryCount()

返回的数量 categories目前已知该MediaRouter路线表示。

MediaRouter.RouteInfo getDefaultRoute()

获取在系统上播放媒体内容的默认路由。

MediaRouter.RouteInfo getRouteAt(int index)

返回指定索引处的路由。

int getRouteCount()

返回此 routes当前已知的数量routes

MediaRouter.RouteInfo getSelectedRoute(int type)

返回任何给定类型的当前选定路线

void removeCallback(MediaRouter.Callback cb)

删除指定的回调。

void removeUserRoute(MediaRouter.UserRouteInfo info)

从MediaRouter中删除应用指定的媒体路由。

void selectRoute(int types, MediaRouter.RouteInfo route)

选择用于输出给定媒体类型的指定路线。

Inherited methods

From class java.lang.Object

Constants

CALLBACK_FLAG_PERFORM_ACTIVE_SCAN

Added in API level 18
int CALLBACK_FLAG_PERFORM_ACTIVE_SCAN

标记为 addCallback(int, MediaRouter.Callback) :在回调被注册时主动扫描路由。

当此标志被指定时,媒体路由器将主动扫描新的路由。 除主动扫描外,某些路由(如wifi显示路由)可能无法发现。 当用户打开路由选择器对话框时,通常会使用此标志以确保路由信息是最新的。

主动扫描可能消耗大量功率,并可能对无线连接造成干扰。 因此,只有在实际需要满足用户请求发现和选择新路由时,才会请求主动扫描,这一点很重要。

常数值:1(0x00000001)

CALLBACK_FLAG_UNFILTERED_EVENTS

Added in API level 18
int CALLBACK_FLAG_UNFILTERED_EVENTS

标志为 addCallback(int, MediaRouter.Callback) :不要过滤路由事件。

当这个标志被指定时,对于影响任何路由的事件,即使它们与回调的过滤器不匹配,该回调也会被调用。

常量值:2(0x00000002)

ROUTE_TYPE_LIVE_AUDIO

Added in API level 16
int ROUTE_TYPE_LIVE_AUDIO

现场音频的路线类型标志。

支持实时音频路由的设备将允许媒体音频流路由到支持的目的地。 这可以包括设备本身的内置扬声器或音频插孔,A2DP设备等等。

一旦启动,该路由对应用程序是透明的。 媒体流上播放的所有音频都将路由到选定的目的地。

常数值:1(0x00000001)

ROUTE_TYPE_LIVE_VIDEO

Added in API level 17
int ROUTE_TYPE_LIVE_VIDEO

直播视频的路线类型标志。

支持实时视频路由的设备将允许镜像版本的设备主显示器或自定义的 Presentation路由到支持的目标。

Once initiated, display mirroring is transparent to the application. While remote routing is active the application may use a Presentation to replace the mirrored view on the external display with different content.

也可以看看:

常量值:2(0x00000002)

ROUTE_TYPE_USER

Added in API level 16
int ROUTE_TYPE_USER

路线类型标志用于应用程序特定用途。

与其他媒体路由类型不同,用户路由由应用程序管理。 MediaRouter将管理和分派用户路由的事件,但应用程序需要解释这些事件的含义并执行所请求的路由任务。

常量值:8388608(0x00800000)

Public methods

addCallback

Added in API level 18
void addCallback (int types, 
                MediaRouter.Callback cb, 
                int flags)

添加回调来收听有关特定媒体路线的事件。 如果指定的回调已被注册,则其注册将针对指定的任何其他路线类型进行更新。

默认情况下,只有对影响与指定选择器匹配的路由的事件才会调用回调。 通过指定CALLBACK_FLAG_UNFILTERED_EVENTS标志可以禁用筛选。

Parameters
types int: Types of routes this callback is interested in
cb MediaRouter.Callback: Callback to add
flags int: Flags to control the behavior of the callback. May be zero or a combination of CALLBACK_FLAG_PERFORM_ACTIVE_SCAN and CALLBACK_FLAG_UNFILTERED_EVENTS.

addCallback

Added in API level 16
void addCallback (int types, 
                MediaRouter.Callback cb)

添加回调来收听有关特定媒体路线的事件。 如果指定的回调已被注册,则其注册将针对指定的任何其他路线类型进行更新。

这是一种方便的方法,与调用 addCallback(int, Callback, int)没有标志具有相同的效果。

Parameters
types int: Types of routes this callback is interested in
cb MediaRouter.Callback: Callback to add

addUserRoute

Added in API level 16
void addUserRoute (MediaRouter.UserRouteInfo info)

将Media应用程序指定的媒体路由添加到MediaRouter。 应用程序指定的路径定义使用createUserRoute(RouteCategory)创建

Parameters
info MediaRouter.UserRouteInfo: Definition of the route to add

也可以看看:

clearUserRoutes

Added in API level 16
void clearUserRoutes ()

从MediaRouter中删除所有应用指定的路由。

也可以看看:

createRouteCategory

Added in API level 16
MediaRouter.RouteCategory createRouteCategory (int nameResId, 
                boolean isGroupable)

创建一个新的路线类别。 每条路线必须属于一个类别。

Parameters
nameResId int: Resource ID of the name of the new category
isGroupable boolean: true if routes in this category may be grouped with one another
Returns
MediaRouter.RouteCategory the new RouteCategory

createRouteCategory

Added in API level 16
MediaRouter.RouteCategory createRouteCategory (CharSequence name, 
                boolean isGroupable)

创建一个新的路线类别。 每条路线必须属于一个类别。

Parameters
name CharSequence: Name of the new category
isGroupable boolean: true if routes in this category may be grouped with one another
Returns
MediaRouter.RouteCategory the new RouteCategory

createUserRoute

Added in API level 16
MediaRouter.UserRouteInfo createUserRoute (MediaRouter.RouteCategory category)

创建一个新的用户路线,该路线可能会被修改并注册以供应用程序使用。

Parameters
category MediaRouter.RouteCategory: The category the new route will belong to
Returns
MediaRouter.UserRouteInfo A new UserRouteInfo for use by the application

也可以看看:

getCategoryAt

Added in API level 16
MediaRouter.RouteCategory getCategoryAt (int index)

在给定的索引下返回category 有效索引在[0-getCategoryCount]范围内。

Parameters
index int: which category to return
Returns
MediaRouter.RouteCategory the category at index

getCategoryCount

Added in API level 16
int getCategoryCount ()

返回的数量 categories目前已知该MediaRouter路线表示。

Returns
int the number of unique categories represented by this MediaRouter's known routes

getDefaultRoute

Added in API level 18
MediaRouter.RouteInfo getDefaultRoute ()

获取在系统上播放媒体内容的默认路由。

系统始终提供默认路由。

Returns
MediaRouter.RouteInfo The default route, which is guaranteed to never be null.

getRouteAt

Added in API level 16
MediaRouter.RouteInfo getRouteAt (int index)

返回指定索引处的路由。

Parameters
index int: index of the route to return
Returns
MediaRouter.RouteInfo the route at index

getRouteCount

Added in API level 16
int getRouteCount ()

返回此 routes当前已知的数目routes

Returns
int the number of routes tracked by this router

getSelectedRoute

Added in API level 16
MediaRouter.RouteInfo getSelectedRoute (int type)

返回任何给定类型的当前选定路线

Parameters
type int: route types
Returns
MediaRouter.RouteInfo the selected route

removeCallback

Added in API level 16
void removeCallback (MediaRouter.Callback cb)

删除指定的回调。 它将不再接收有关媒体路由的事件。

Parameters
cb MediaRouter.Callback: Callback to remove

removeUserRoute

Added in API level 16
void removeUserRoute (MediaRouter.UserRouteInfo info)

从MediaRouter中删除应用指定的媒体路由。

Parameters
info MediaRouter.UserRouteInfo: Definition of the route to remove

也可以看看:

selectRoute

Added in API level 16
void selectRoute (int types, 
                MediaRouter.RouteInfo route)

选择用于输出给定媒体类型的指定路线。

作为API版本18,此功能可用于选择任何路线。 在以前的版本中,该功能只能用于选择用户路由并忽略任何尝试选择系统路由。

Parameters
types int: type flags indicating which types this route should be used for. The route must support at least a subset.
route MediaRouter.RouteInfo: Route to select
Throws
IllegalArgumentException if the given route is null

Hooray!