public class MediaRouter
extends Object
java.lang.Object | |
↳ | android.media.MediaRouter |
MediaRouter允许应用程序控制从当前设备到外部扬声器和目标设备的媒体通道和流的路由。
MediaRouter通过 Context.getSystemService()
的 Context.MEDIA_ROUTER_SERVICE
检索。
媒体路由器API不是线程安全的; 所有与它的交互都必须从流程的主线程完成。
Nested classes |
|
---|---|
class |
MediaRouter.Callback 用于接收有关媒体路由更改事件的接口。 |
class |
MediaRouter.RouteCategory 一类路线的定义。 |
class |
MediaRouter.RouteGroup 有关由多个其他路由组成的路由的信息。 |
class |
MediaRouter.RouteInfo 有关媒体路线的信息。 |
class |
MediaRouter.SimpleCallback 存根实施 |
class |
MediaRouter.UserRouteInfo 有关应用程序可以定义和修改的路线的信息。 |
class |
MediaRouter.VolumeCallback 接收有关音量变化的事件的界面。 |
Constants |
|
---|---|
int |
CALLBACK_FLAG_PERFORM_ACTIVE_SCAN 标志为 |
int |
CALLBACK_FLAG_UNFILTERED_EVENTS 标志为 |
int |
ROUTE_TYPE_LIVE_AUDIO 现场音频的路线类型标志。 |
int |
ROUTE_TYPE_LIVE_VIDEO 直播视频的路线类型标志。 |
int |
ROUTE_TYPE_USER 路线类型标志用于应用程序特定用途。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
int CALLBACK_FLAG_PERFORM_ACTIVE_SCAN
标记为 addCallback(int, MediaRouter.Callback)
:在回调被注册时主动扫描路由。
当此标志被指定时,媒体路由器将主动扫描新的路由。 除主动扫描外,某些路由(如wifi显示路由)可能无法发现。 当用户打开路由选择器对话框时,通常会使用此标志以确保路由信息是最新的。
主动扫描可能消耗大量功率,并可能对无线连接造成干扰。 因此,只有在实际需要满足用户请求发现和选择新路由时,才会请求主动扫描,这一点很重要。
常数值:1(0x00000001)
int CALLBACK_FLAG_UNFILTERED_EVENTS
标志为 addCallback(int, MediaRouter.Callback)
:不要过滤路由事件。
当这个标志被指定时,对于影响任何路由的事件,即使它们与回调的过滤器不匹配,该回调也会被调用。
常量值:2(0x00000002)
int ROUTE_TYPE_LIVE_AUDIO
现场音频的路线类型标志。
支持实时音频路由的设备将允许媒体音频流路由到支持的目的地。 这可以包括设备本身的内置扬声器或音频插孔,A2DP设备等等。
一旦启动,该路由对应用程序是透明的。 媒体流上播放的所有音频都将路由到选定的目的地。
常数值:1(0x00000001)
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)
int ROUTE_TYPE_USER
路线类型标志用于应用程序特定用途。
与其他媒体路由类型不同,用户路由由应用程序管理。 MediaRouter将管理和分派用户路由的事件,但应用程序需要解释这些事件的含义并执行所请求的路由任务。
常量值:8388608(0x00800000)
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 . |
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 |
void addUserRoute (MediaRouter.UserRouteInfo info)
将Media应用程序指定的媒体路由添加到MediaRouter。 应用程序指定的路径定义使用createUserRoute(RouteCategory)
创建
Parameters | |
---|---|
info |
MediaRouter.UserRouteInfo : Definition of the route to add |
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 |
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 |
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 |
MediaRouter.RouteCategory getCategoryAt (int index)
在给定的索引下返回category
。 有效索引在[0-getCategoryCount]范围内。
Parameters | |
---|---|
index |
int : which category to return |
Returns | |
---|---|
MediaRouter.RouteCategory |
the category at index |
int getCategoryCount ()
返回的数量 categories
目前已知该MediaRouter路线表示。
Returns | |
---|---|
int |
the number of unique categories represented by this MediaRouter's known routes |
MediaRouter.RouteInfo getDefaultRoute ()
获取在系统上播放媒体内容的默认路由。
系统始终提供默认路由。
Returns | |
---|---|
MediaRouter.RouteInfo |
The default route, which is guaranteed to never be null. |
MediaRouter.RouteInfo getRouteAt (int index)
返回指定索引处的路由。
Parameters | |
---|---|
index |
int : index of the route to return |
Returns | |
---|---|
MediaRouter.RouteInfo |
the route at index |
int getRouteCount ()
Returns | |
---|---|
int |
the number of routes tracked by this router |
MediaRouter.RouteInfo getSelectedRoute (int type)
返回任何给定类型的当前选定路线
Parameters | |
---|---|
type |
int : route types |
Returns | |
---|---|
MediaRouter.RouteInfo |
the selected route |
void removeCallback (MediaRouter.Callback cb)
删除指定的回调。 它将不再接收有关媒体路由的事件。
Parameters | |
---|---|
cb |
MediaRouter.Callback : Callback to remove |
void removeUserRoute (MediaRouter.UserRouteInfo info)
从MediaRouter中删除应用指定的媒体路由。
Parameters | |
---|---|
info |
MediaRouter.UserRouteInfo : Definition of the route to remove |
也可以看看:
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 |