Most visited

Recently visited

MediaControlIntent

public final class MediaControlIntent
extends Object

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


媒体控制意图的常量。

该类声明了一组标准的媒体控制意图类别和动作,应用程序可以使用这些类别来识别媒体路由的功能并对其进行控制。

Media control intent categories

媒体控制意图类别指定应用程序可以将媒体发送到媒体路由的目的地的手段。 类别有时被称为描述“类型”或“种类”的路线。

例如,如果路线支持remote playback category ,则应用程序可以要求它通过发送playenqueue意图与媒体内容的Uri进行播放来远程播放媒体。 这样的路由然后可以被称为“远程回放路由”,因为它支持远程回放请求。 一条路线同时支持多个类别的请求是很常见的,例如实时音频和实时视频。

定义了以下标准路线类别。

除了标准媒体路径提供者之外,媒体路线提供者可以定义他们自己的自定义媒体控制意图类别。 自定义类别可用于为识别并知道如何使用它们的应用程序提供各种功能。 例如,媒体路由提供商可能会定义一个自定义类别,以指示其路由除了支持其他标准功能外,还支持特定的设备特定控制接口。

应用程序可以通过使用MediaRouter.RouteInfo.supportsControlCategoryMediaRouter.RouteInfo.getControlFilters方法来确定路线支持哪些类别。 应用程序还可以通过创建包含所需类别的media route selectors来指定他们想要使用的路线的类型,并用于过滤媒体路由器API的几个部分中的路线。

Media control intent actions

媒体控制意图动作指定应用程序可以询问媒体路由目的地执行的特定功能。 媒体路由控制请求以与用于启动活动或发送广播的其他意图类似的方式采取意图的形式。 不同之处在于媒体控制意图是针对路由而非活动或广播接收器组件。

每个媒体路径控制意图指定作为额外提供的动作,类别和一些参数。 应用程序使用MediaRouter.RouteInfo.sendControlRequest方法将媒体控制请求发送到路由,并通过回调接收结果。

所有媒体控制意图操作都与支持它们的媒体控制意图类别相关联。 因此只有远程回放路径可以执行远程回放动作。 每个动作的文档都指定动作所属的类别,它需要的参数以及返回的结果。

Live audio and live video routes

Live audiolive video路由使用标准系统接口(如音频流, presentations或显示镜像)呈现媒体。 这些路由是最容易使用的,因为应用程序只是简单地在设备上本地呈现内容,而系统会自动将它流式传输到路由目标。

在大多数情况下,应用程序可以将内容流式传输到现场音频和实况视频路线,这与他们在本地播放内容的方式没有任何修改。 但是,应用程序也可以利用更复杂的功能,例如特定于这些路线的第二屏幕演示API。

Remote playback routes

Remote playback通过播放来自Uri的内容来远程呈现媒体。 这些路由目标负责自行获取和呈现内容。 应用程序不会自己渲染内容; 相反,应用程序发送控制请求以启动播放,暂停,恢复或停止媒体项目,并在状态更改时接收状态更新。

Sessions

每个远程媒体播放操作都在会话范围内进行。 会话用于防止应用程序意外地相互干扰,因为一次最多只能有一个会话有效。

会话可以通过创建 start session action和使用终止 end session action时的路线提供了明确的会话管理功能。

显式会话管理是在协议的后续修订中添加的,因此并非所有路由都支持它。 如果路由不支持显式会话管理,则仍然可以使用隐式会话管理。 隐式会话管理依赖于使用playenqueue动作,如果没有任何参数被提供,那么这些动作具有创建新会话的副作用。

创建新会话时,先前的会话无效,并且在执行所请求的操作之前停止正在进行的媒体播放。 任何尝试使用失效的会话都会导致错误。 (鼓励协议实施积极地放弃与无效会话相关的信息,因为它不再被使用。)

每个会话由一个唯一的会话ID标识,可用于使用诸如暂停,恢复,停止和结束会话之类的操作来控制会话。

Media items

每个成功的playenqueue操作都将返回一个应用程序可用于监视和控制播放的唯一媒体项目标识。 媒体项目ID可能会传递给其他操作,例如seekget status 它也将作为状态更新广播中的一个参数出现以识别关联的回放请求。

每个媒体项目都被限定在创建它的会话中。 因此,媒体项目ID仅与会话ID一起使用。 媒体项目id本身无意义。 当会话失效时,其所有媒体项目也都失效。

The playback queue

每个会话都有其自己的回放队列,该队列由待处理,播放,缓存或暂停的媒体项组成。 播放请求发出时,项目被添加到队列中。 当队列不再符合播放条件时,将从队列中删除项目(输入终端状态)。

MediaItemStatus课程中所述,媒体项目最初以未决状态开始,在播放期间转换到播放(或缓冲或暂停)状态,并以结束,取消,失效或错误状态结束。 一旦当前项目进入终端状态,播放就会继续到下一个项目。

应用程序应通过检查 ACTION_ENQUEUE操作是否在路径的控制过滤器中使用 RouteInfo.supportsControlRequest声明来确定路由是否支持排队。

如果路由支持ACTION_ENQUEUE动作,则路由允许一次至少允许两个项目(可能更多)进入队列。 随着前一个项目的完成,排队的项目会一个接一个地重复播放。 理想情况下,标准音频内容类型的项目之间应该没有可听见的停顿。

如果路由不支持ACTION_ENQUEUE操作,那么队列一次最多有一个项目。 每个播放动作具有清除队列并在下一个项目播放之前重置其状态的效果。

Impact of pause, resume, stop and play actions on the playback queue

暂停,恢复和停止操作会影响会话的整个队列。 无论当前正在播放哪个项目,暂停都会导致播放队列暂停。 简历反转暂停的效果。 停止清除队列并重置暂停标志,就像简历一样。

如前所述,播放动作具有清除队列并完全重置其状态(如停止动作)的效果,然后排队要立即播放的新媒体项目。 因此,游戏相当于停止,然后是排列物品的动作。

播放操作也很特别,因为它可以用来创建新的会话。 具有简单需求的应用程序可能会发现它只需要使用播放(偶尔停止)来控制播放。

Resolving conflicts between applications

当一个应用程序有一个有效的会话时,它基本上控制着路由上的远程回放。 没有其他应用程序可以在不知道其ID的情况下查看或修改该应用程序会话的远程回放状态。

但是,其他应用程序可以执行具有停止播放和使当前会话无效的操作。 发生这种情况时,将通过前一个应用程序通知单个媒体项目状态更新广播失去控制,这表示其排队的媒体项目已变为invalidated 该广播意味着播放由于外部原因而异常终止。

应用程序应该保守地处理冲突以允许其他应用程序顺利地控制路线。 当发生冲突时,当前正在播放的应用程序应释放其会话并允许新应用程序使用路由,直到用户干预再次接管路由并开始新的播放会话。

Basic actions

所有远程回放路径必须支持以下基本操作(全部或全部)。 这些操作构成了远程回放协议的基础,并且在所有实施中都是必需的。

Queue actions

以下队列操作必须由提供可选排队功能的远程回放路由支持(全部或全部)。

Session actions

以下会话操作必须由提供可选会话管理功能的远程回放路由支持(全部或全部)。

Implementation note

远程回放协议的实现必须实现所有记录的操作,参数和结果。 请注意,文档是从协议客户端的角度编写的。 特别是,每当一个参数被描述为“可选”时,它只是从客户的角度来看。 符合此协议的媒体路由提供程序实施必须支持此处所述的所有功能。

Summary

Constants

String ACTION_END_SESSION

远程回放媒体控制操作:结束会话。

String ACTION_ENQUEUE

远程播放媒体控制动作:排队媒体项目。

String ACTION_GET_SESSION_STATUS

远程回放媒体控制操作:获取媒体会话状态信息。

String ACTION_GET_STATUS

远程播放媒体控制操作:获取媒体项目播放状态和进度信息。

String ACTION_PAUSE

远程播放媒体控制操作:暂停媒体播放。

String ACTION_PLAY

远程播放媒体控制操作:播放媒体项目。

String ACTION_REMOVE

远程播放媒体控制操作:从会话队列中删除媒体项目。

String ACTION_RESUME

远程播放媒体控制操作:恢复媒体播放(取消暂停)。

String ACTION_SEEK

远程播放媒体控制动作:将媒体项目搜索到新的播放位置。

String ACTION_SEND_MESSAGE

自定义媒体控制操作:发送 EXTRA_MESSAGE

String ACTION_START_SESSION

远程回放媒体控制操作:启动会话。

String ACTION_STOP

远程播放媒体控制操作:停止媒体播放(清除队列和取消暂停)。

String CATEGORY_LIVE_AUDIO

媒体控制类别:现场音频。

String CATEGORY_LIVE_VIDEO

媒体控制类别:实时视频。

String CATEGORY_REMOTE_PLAYBACK

媒体控制类别:远程播放。

int ERROR_INVALID_ITEM_ID

错误代码:请求中指定的商品ID无效。

int ERROR_INVALID_SESSION_ID

错误代码:请求中指定的会话标识无效。

int ERROR_UNKNOWN

错误代码:发生未知错误。

int ERROR_UNSUPPORTED_OPERATION

错误代码:该操作不受支持。

String EXTRA_ERROR_CODE

整数额外:错误代码。

String EXTRA_ITEM_CONTENT_POSITION

长时间额外:媒体项目内容位置。

String EXTRA_ITEM_HTTP_HEADERS

Bundle extra:HTTP请求标头。

String EXTRA_ITEM_ID

附加套餐:媒体项目ID。

String EXTRA_ITEM_METADATA

Bundle extra:媒体项目元数据。

String EXTRA_ITEM_STATUS

附加套餐:媒体项目状态。

String EXTRA_ITEM_STATUS_UPDATE_RECEIVER

附加套餐:媒体项目状态更新接收器。

String EXTRA_MESSAGE

额外捆绑:消息。

String EXTRA_MESSAGE_RECEIVER

额外捆绑:媒体消息接收器。

String EXTRA_SESSION_ID

附加套餐:媒体会话ID。

String EXTRA_SESSION_STATUS

附加套餐:媒体会话状态。

String EXTRA_SESSION_STATUS_UPDATE_RECEIVER

额外捆绑:媒体会话状态更新接收器。

Inherited methods

From class java.lang.Object

Constants

ACTION_END_SESSION

String ACTION_END_SESSION

远程回放媒体控制操作:结束会话。

与支持 remote playback媒体控制的路由一起使用。

此操作会导致远程回放路径结束指定的会话。 会话不再有效,路由也不再受到会话的控制。

如果成功,会话状态设置为 SESSION_STATE_ENDED ,状态更新发送到会话的状态更新接收器。

此外,队列中所有媒体项目的状态设置为 canceled ,状态更新将发送到相应的状态更新接收器,指示每个项目的新状态。

Request parameters

Result data

Errors

如果会话ID未知或不再有效,此操作将返回错误。 换句话说,尝试结束除当前会话以外的会话是错误的。

也可以看看:

常量值:“android.media.intent.action.END_SESSION”

ACTION_ENQUEUE

String ACTION_ENQUEUE

远程播放媒体控制动作:排队媒体项目。

与支持 remote playback媒体控制的路由一起使用。

此操作的作用与play类似, play处在于,它不会在将新媒体项排入会话的播放队列时清除队列或重置暂停状态。 此操作仅将队列中没有其他副作用的媒体项排入队列。

如果队列当前为空,则该项目将立即播放(假设队列未暂停)。 否则,该项目将在队列中所有先前的项目已完成或已被移除之后播放。

排队行为可以用来创建新的会话,就像玩游戏一样。 它的参数和结果也是一样的。 只有排队行为是不同的。

也可以看看:

常量值:“android.media.intent.action.ENQUEUE”

ACTION_GET_SESSION_STATUS

String ACTION_GET_SESSION_STATUS

远程回放媒体控制操作:获取媒体会话状态信息。

与支持 remote playback媒体控制的路由一起使用。

此操作要求远程回放路由提供有关指定媒体会话的更新状态信息。

Request parameters

  • EXTRA_SESSION_ID (required): Specifies the session id of the session whose status is to be retrieved.

Result data

Errors

如果会话ID未知或不再有效,此操作将返回错误。

也可以看看:

常量值:“android.media.intent.action.GET_SESSION_STATUS”

ACTION_GET_STATUS

String ACTION_GET_STATUS

远程播放媒体控制操作:获取媒体项目播放状态和进度信息。

与支持 remote playback媒体控制的路由一起使用。

此操作要求远程播放路线提供有关指定媒体项目的更新播放状态和进度信息。

Request parameters

  • EXTRA_SESSION_ID (required): Specifies the session id of the session to which the media item belongs.
  • EXTRA_ITEM_ID (required): Specifies the media item id of the media item to query.

Result data

  • EXTRA_SESSION_STATUS (optional, old implementations may omit this key): Specifies the status of the media session.
  • EXTRA_ITEM_STATUS (always returned): Specifies the current status of the media item.

Errors

This action returns an error if the session id or media item id are unknown or no longer valid.

也可以看看:

常量值:“android.media.intent.action.GET_STATUS”

ACTION_PAUSE

String ACTION_PAUSE

远程播放媒体控制操作:暂停媒体播放。

与支持 remote playback媒体控制的路由一起使用。

此操作会导致指定会话的播放队列暂停。

Request parameters

  • EXTRA_SESSION_ID (required): Specifies the session id of the session whose playback queue is to be paused.

Result data

  • EXTRA_SESSION_STATUS (optional, old implementations may omit this key): Specifies the status of the media session.

Errors

如果会话ID未知或不再有效,此操作将返回错误。

也可以看看:

常量值:“android.media.intent.action.PAUSE”

ACTION_PLAY

String ACTION_PLAY

远程播放媒体控制操作:播放媒体项目。

与支持 remote playback媒体控制的路由一起使用。

此操作会导致远程回放路径开始播放Uri指定的Intentdata uri 该操作返回媒体会话标识和媒体项目标识,可使用其他远程播放操作来控制播放。

一旦启动,指定内容的播放将由目的地独立管理。 应用程序将在媒体项目状态更改时接收状态更新。

如果数据uri指定HTTP或HTTPS方案,则目标负责跟踪HTTP重定向到至少3个级别的合理深度,这可能通常由Web浏览器处理。 如果发生HTTP错误,则目标应该发送一个status update回到客户端,指示error playback state

One item at a time

每个成功的比赛动作取代以前的比赛动作。 如果一个项目已经在播放,那么它将被取消,会话的播放队列被清除并且新项目立即开始播放(不管先前播放的项目是否已被暂停)。

因此,播放等同于 stop随后是 stop要立即播放的新媒体项目的动作。

Sessions

只要应用程序未指定参数session id此请求就会隐式创建媒体会话。 因为一次最多只能有一个有效的会话,所以创建新会话具有使任何现有会话及其媒体项失效的副作用,然后用新会话处理回放请求。

如果应用程序指定了无效的会话ID,则会返回错误。 发生这种情况时,应用程序应该假定其会话不再有效。 要获得新的会话,应用程序可能会再次尝试并省略会话ID参数。 但是,由于用户执行了明确的操作,例如用户在UI中单击“播放”按钮,因此应用程序应该仅重试请求,因为另一个应用程序可能试图控制该路线,而前一个应用程序应该尽量保持它的方式。

有关会议,队列和媒体项目的更多信息,请参阅班级文件。

Request parameters

  • EXTRA_SESSION_ID (optional): Specifies the session id of the session to which the playback request belongs. If omitted, a new session is created implicitly.
  • EXTRA_ITEM_CONTENT_POSITION (optional): Specifies the initial content playback position as a long integer number of milliseconds from the beginning of the content.
  • EXTRA_ITEM_METADATA (optional): Specifies metadata associated with the content such as the title of a song.
  • EXTRA_ITEM_STATUS_UPDATE_RECEIVER (optional): Specifies a PendingIntent for a broadcast receiver that will receive status updates about the media item.

Result data

  • EXTRA_SESSION_ID (always returned): Specifies the session id of the session that was affected by the request. This will be a new session in the case where no session id was supplied as a parameter.
  • EXTRA_SESSION_STATUS (optional, old implementations may omit this key): Specifies the status of the media session.
  • EXTRA_ITEM_ID (always returned): Specifies an opaque string identifier to use to refer to the media item in subsequent requests such as ACTION_GET_STATUS.
  • EXTRA_ITEM_STATUS (always returned): Specifies the initial status of the new media item.

Status updates

如果客户端提供item status update receiver则媒体路由提供程序负责在发生重要媒体项状态更改(如播放开始或停止时)时向接收方发送状态更新。 接收器将不会被调用用于内容播放位置更改。 应用程序可以使用ACTION_GET_STATUS请求在必要时检索当前播放位置。

详情请参阅 MediaItemStatus

Errors

如果提供了会话标识,但此操作会返回错误,但未知或不再有效,如果不支持项目Uri或内容类型,或者任何其他参数无效。

Example

 MediaRouter mediaRouter = MediaRouter.getInstance(context);
 MediaRouter.RouteInfo route = mediaRouter.getSelectedRoute();
 Intent intent = new Intent(MediaControlIntent.ACTION_PLAY);
 intent.addCategory(MediaControlIntent.CATEGORY_REMOTE_PLAYBACK);
 intent.setDataAndType("http://example.com/videos/movie.mp4", "video/mp4");
 if (route.supportsControlRequest(intent)) {
     MediaRouter.ControlRequestCallback callback = new MediaRouter.ControlRequestCallback() {
         public void onResult(Bundle data) {
             // The request succeeded.
             // Playback may be controlled using the returned session and item id.
             String sessionId = data.getString(MediaControlIntent.EXTRA_SESSION_ID);
             String itemId = data.getString(MediaControlIntent.EXTRA_ITEM_ID);
             MediaItemStatus status = MediaItemStatus.fromBundle(data.getBundle(
                     MediaControlIntent.EXTRA_ITEM_STATUS));
             // ...
         }

         public void onError(String message, Bundle data) {
             // An error occurred!
         }
     };
     route.sendControlRequest(intent, callback);
 }

也可以看看:

常量值:“android.media.intent.action.PLAY”

ACTION_REMOVE

String ACTION_REMOVE

远程播放媒体控制操作:从会话队列中删除媒体项目。

与支持 remote playback媒体控制的路由一起使用。

此操作要求远程回放路径从会话的回放队列中删除指定的媒体项目。 如果当前项目被移除,则回放将进行到下一个媒体项目(假设队列尚未暂停)。

此操作不会影响队列的暂停状态。 如果队列被暂停,那么它将保持暂停(即使它现在为空),直到发出恢复,停止或播放动作,导致暂停状态被清除。

Request parameters

  • EXTRA_SESSION_ID (required): Specifies the session id of the session to which the media item belongs.
  • EXTRA_ITEM_ID (required): Specifies the media item id of the media item to remove.

Result data

  • EXTRA_SESSION_STATUS (optional, old implementations may omit this key): Specifies the status of the media session.
  • EXTRA_ITEM_STATUS (always returned): Specifies the new status of the media item.

Errors

如果会话标识或媒体项目标识未知或不再有效,或媒体项目处于终端状态(因此不再位于队列中),此操作将返回错误。

也可以看看:

常量值:“android.media.intent.action.REMOVE”

ACTION_RESUME

String ACTION_RESUME

远程播放媒体控制操作:恢复媒体播放(取消暂停)。

与支持 remote playback媒体控制的路由一起使用。

此操作会导致指定会话的播放队列恢复。 颠倒ACTION_PAUSE的效果。

Request parameters

  • EXTRA_SESSION_ID (required): Specifies the session id of the session whose playback queue is to be resumed.

Result data

  • EXTRA_SESSION_STATUS (optional, old implementations may omit this key): Specifies the status of the media session.

Errors

如果会话ID未知或不再有效,此操作将返回错误。

也可以看看:

常量值:“android.media.intent.action.RESUME”

ACTION_SEEK

String ACTION_SEEK

远程播放媒体控制动作:将媒体项目搜索到新的播放位置。

与支持 remote playback媒体控制的路由一起使用。

此操作会导致远程播放路径修改指定媒体项目的当前播放位置。

此操作仅影响媒体项目的播放位置; 而不是其播放状态。 如果回放队列暂停,则查找设置位置,但项目保持暂停状态。 同样,如果该项目正在播放,则搜索将导致播放跳到新位置并从该点继续播放。 如果该项目尚未开始播放,则新的播放位置将被队列记住,并在播放最终开始时用作项目的初始内容位置。

如果成功,媒体项目的播放位置将更改。

Request parameters

  • EXTRA_SESSION_ID (required): Specifies the session id of the session to which the media item belongs.
  • EXTRA_ITEM_ID (required): Specifies the media item id of the media item to seek.
  • EXTRA_ITEM_CONTENT_POSITION (required): Specifies the new content position for playback as a long integer number of milliseconds from the beginning of the content.

Result data

  • EXTRA_SESSION_STATUS (optional, old implementations may omit this key): Specifies the status of the media session.
  • EXTRA_ITEM_STATUS (always returned): Specifies the new status of the media item.

Errors

如果会话ID或媒体项标识未知或不再有效,内容位置无效或媒体项处于终端状态,此操作将返回错误。

也可以看看:

常量值:“android.media.intent.action.SEEK”

ACTION_SEND_MESSAGE

String ACTION_SEND_MESSAGE

自定义媒体控制操作:发送 EXTRA_MESSAGE

此操作要求路由处理由EXTRA_MESSAGE描述的消息。

Request parameters

  • EXTRA_SESSION_ID (required): Specifies the session id of the session to which will handle this message.
  • EXTRA_MESSAGE (required): Specifies the message to send.

Result data

Any messages defined by each media route provider.

Errors

Any error messages defined by each media route provider.

也可以看看:

常量值:“android.media.intent.action.SEND_MESSAGE”

ACTION_START_SESSION

String ACTION_START_SESSION

远程回放媒体控制操作:启动会话。

与支持 remote playback媒体控制的路由一起使用。

此操作会导致远程回放路由使当前会话无效并开始新的会话。 新会话最初有一个空队列。

如果成功,则先前会话队列中所有媒体项目的状态设置为invalidated并将状态更新发送到相应的状态更新接收器,以指示每个项目的新状态。 前一个会话不再有效,新会话将控制该路由。

Request parameters

Result data

  • EXTRA_SESSION_ID (always returned): Specifies the session id of the session that was started by the request. This will always be a brand new session distinct from any other previously created sessions.
  • EXTRA_SESSION_STATUS (always returned): Specifies the status of the media session.

Status updates

如果客户端提供 status update receiver则媒体路由提供程序负责在重大媒体会话状态更改发生时(例如会话队列暂停或恢复时或会话终止或无效时)向接收方发送状态更新。

详情请参阅 MediaSessionStatus

Custom messages

如果客户端提供 message receiver则当会话有任何消息要发送时,媒体路由提供程序负责向接收方发送消息。

详情请参阅 EXTRA_MESSAGE

Errors

如果无法创建会话,此操作将返回错误。

也可以看看:

常量值:“android.media.intent.action.START_SESSION”

ACTION_STOP

String ACTION_STOP

远程播放媒体控制操作:停止媒体播放(清除队列和取消暂停)。

与支持 remote playback媒体控制的路由一起使用。

此操作会导致远程播放路径停止播放,取消并从会话的媒体项目队列中删除所有媒体项目,并重置队列的暂停状态。

如果成功,则将队列中所有媒体项目的状态设置为 canceled并将状态更新发送到相应的状态更新接收器,以指示每个项目的新状态。

Request parameters

  • EXTRA_SESSION_ID (required): Specifies the session id of the session whose playback queue is to be stopped (cleared and unpaused).

Result data

  • EXTRA_SESSION_STATUS (optional, old implementations may omit this key): Specifies the status of the media session.

Errors

如果会话ID未知或不再有效,此操作将返回错误。

也可以看看:

常量值:“android.media.intent.action.STOP”

CATEGORY_LIVE_AUDIO

String CATEGORY_LIVE_AUDIO

媒体控制类别:现场音频。

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

当选择现场音频路由时,音频路由对应用程序是透明的。 媒体流上播放的所有音频都将路由到选定的目的地。

有关现场音频路线的详细信息,请参阅班级文档。

常量值:“android.media.intent.category.LIVE_AUDIO”

CATEGORY_LIVE_VIDEO

String CATEGORY_LIVE_VIDEO

媒体控制类别:实时视频。

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

选择实时视频路由时,音频和视频路由对应用程序是透明的。 默认情况下,音频和视频路由到选定的目的地。 对于某些实时视频路由,应用程序也可能使用Presentation来替换具有不同内容的外部显示器上的镜像视图。

有关实况视频路线的详细信息,请参阅班级文档。

也可以看看:

常量值:“android.media.intent.category.LIVE_VIDEO”

CATEGORY_REMOTE_PLAYBACK

String CATEGORY_REMOTE_PLAYBACK

媒体控制类别:远程播放。

支持远程回放路由的路由将允许应用程序发送请求以将内容远程播放到支持的目的地。

远程回放路线目的地独立于本地设备运行。 当选择远程回放路由时,应用可以通过向路由发送媒体控制动作来控制在目的地上播放的内容。 应用程序还可能会从有关远程播放的路线接收状态更新。

有关远程播放路线的详细信息,请参阅类文档。

也可以看看:

常量值:“android.media.intent.category.REMOTE_PLAYBACK”

ERROR_INVALID_ITEM_ID

int ERROR_INVALID_ITEM_ID

错误代码:请求中指定的商品ID无效。

也可以看看:

常量值:3(0x00000003)

ERROR_INVALID_SESSION_ID

int ERROR_INVALID_SESSION_ID

错误代码:请求中指定的会话标识无效。

也可以看看:

常量值:2(0x00000002)

ERROR_UNKNOWN

int ERROR_UNKNOWN

错误代码:发生未知错误。

也可以看看:

常量值:0(0x00000000)

ERROR_UNSUPPORTED_OPERATION

int ERROR_UNSUPPORTED_OPERATION

错误代码:该操作不受支持。

也可以看看:

常数值:1(0x00000001)

EXTRA_ERROR_CODE

String EXTRA_ERROR_CODE

整数额外:错误代码。

与所有媒体控制请求一起使用来描述错误的原因。 当错误未知时,这个额外的可能被省略。

该值是下列之一: ERROR_UNKNOWNERROR_UNSUPPORTED_OPERATIONERROR_INVALID_SESSION_IDERROR_INVALID_ITEM_ID

常量值:“android.media.intent.extra.ERROR_CODE”

EXTRA_ITEM_CONTENT_POSITION

String EXTRA_ITEM_CONTENT_POSITION

长时间额外:媒体项目内容位置。

ACTION_PLAYACTION_ENQUEUE一起使用来指定开始播放位置。

ACTION_SEEK一起使用以设置新的播放位置。

该值是从内容开始的一个长整数毫秒数。

也可以看看:

常量值:“android.media.intent.extra.ITEM_POSITION”

EXTRA_ITEM_HTTP_HEADERS

String EXTRA_ITEM_HTTP_HEADERS

Bundle extra:HTTP请求标头。

ACTION_PLAYACTION_ENQUEUE一起使用时,指定在获取媒体项目数据Uri指示的内容时要包含的HTTP请求标头。

这个额外的可用于向服务器提供认证令牌和其他参数,与媒体项目的数据Uri分开。

该值是描述HTTP请求标头的基于字符串的键值对的 Bundle

也可以看看:

常量值:“android.media.intent.extra.HTTP_HEADERS”

EXTRA_ITEM_ID

String EXTRA_ITEM_ID

附加套餐:媒体项目ID。

表示由播放请求创建的媒体项的 ACTION_PLAYACTION_ENQUEUE返回的不透明唯一标识符。

与各种操作一起使用以指定要控制的媒体项目的ID。

包含在发送到 status update receivers广播意图中以识别有问题的项目。

该值是由媒体路由提供商生成的用于表示一个特定媒体项目的唯一字符串值。

也可以看看:

常量值:“android.media.intent.extra.ITEM_ID”

EXTRA_ITEM_METADATA

String EXTRA_ITEM_METADATA

Bundle extra:媒体项目元数据。

ACTION_PLAYACTION_ENQUEUE一起使用以指定与媒体项目内容相关联的元数据。

该值是 Bundle中定义的元数据键值对的 MediaItemMetadata

也可以看看:

常量值:“android.media.intent.extra.ITEM_METADATA”

EXTRA_ITEM_STATUS

String EXTRA_ITEM_STATUS

附加套餐:媒体项目状态。

返回从媒体项目的行动,结果 ACTION_PLAYACTION_ENQUEUEACTION_SEEK ,并 ACTION_GET_STATUS描述指定媒体项目的状态。

包含在发送到 item status update receivers广播意图中以提供更新的状态信息。

值是 Bundle的数据可以被转换为 MediaItemStatus使用对象 MediaItemStatus.fromBundle

也可以看看:

常量值:“android.media.intent.extra.ITEM_STATUS”

EXTRA_ITEM_STATUS_UPDATE_RECEIVER

String EXTRA_ITEM_STATUS_UPDATE_RECEIVER

附加套餐:媒体项目状态更新接收器。

ACTION_PLAYACTION_ENQUEUE一起使用,可为将接收有关特定媒体项目的状态更新的广播接收器指定 PendingIntent

只要媒体项目的状态发生变化,媒体路由提供商就会向挂起的意向发送广播,附加信息用于标识该项目所属的会话,会话状态,项目的ID和项目的更新状态。

由于广播意图包括媒体会话ID和媒体项目ID,所以相同的未决意图和广播接收器可以被任何数量的媒体项目共享。

该值为 PendingIntent

Broadcast extras

  • EXTRA_SESSION_ID (required): Specifies the session id of the session to which the item in question belongs.
  • EXTRA_SESSION_STATUS (optional, old implementations may omit this key): Specifies the status of the media session.
  • EXTRA_ITEM_ID (required): Specifies the media item id of the media item in question.
  • EXTRA_ITEM_STATUS (required): Specifies the status of the item as a bundle that can be decoded into a MediaItemStatus object.

也可以看看:

常量值:“android.media.intent.extra.ITEM_STATUS_UPDATE_RECEIVER”

EXTRA_MESSAGE

String EXTRA_MESSAGE

额外捆绑:消息。

ACTION_SEND_MESSAGE一起 ACTION_SEND_MESSAGE ,并包含在发送到 message receivers广播意图中以描述会话与媒体路由提供者之间的消息。

值是 Bundle

常量值:“android.media.intent.extra.MESSAGE”

EXTRA_MESSAGE_RECEIVER

String EXTRA_MESSAGE_RECEIVER

额外捆绑:媒体消息接收器。

ACTION_START_SESSION一起使用,为将从媒体会话接收消息的广播接收器指定 PendingIntent

当媒体会话有消息要发送时,媒体路由提供程序将发送一个广播给挂起的意图,并带有标识会话标识及其消息的附加信息。

值是 PendingIntent

Broadcast extras

  • EXTRA_SESSION_ID (required): Specifies the session id of the session.
  • EXTRA_MESSAGE (required): Specifies the message from the session as a bundle object.

也可以看看:

常量值:“android.media.intent.extra.MESSAGE_RECEIVER”

EXTRA_SESSION_ID

String EXTRA_SESSION_ID

附加套餐:媒体会话ID。

标识远程回放媒体会话的不透明唯一标识符。

与各种操作一起使用以指定要控制的媒体会话的ID。

包含在发送到 item status update receivers广播意图中以标识所涉及的项目所属的会话。

包含在发送到 session status update receivers广播意图中以识别会话。

该值是由媒体路由提供程序生成的唯一字符串值,用于表示一个特定的媒体会话。

也可以看看:

常量值:“android.media.intent.extra.SESSION_ID”

EXTRA_SESSION_STATUS

String EXTRA_SESSION_STATUS

附加套餐:媒体会话状态。

返回从媒体会话的行动,结果 ACTION_START_SESSIONACTION_PAUSE ,并 ACTION_GET_SESSION_STATUS描述指定媒体会话的状态。

包含在发送到 session status update receivers广播意图中以提供更新的状态信息。

值是 Bundle的数据可以被转换为 MediaSessionStatus使用对象 MediaSessionStatus.fromBundle

也可以看看:

常量值:“android.media.intent.extra.SESSION_STATUS”

EXTRA_SESSION_STATUS_UPDATE_RECEIVER

String EXTRA_SESSION_STATUS_UPDATE_RECEIVER

额外捆绑:媒体会话状态更新接收器。

ACTION_START_SESSION一起使用,为将接收有关媒体会话状态更新的广播接收器指定 PendingIntent

只要媒体会话的状态发生变化,媒体路由提供商就会将广播发送给挂起的意图,并附加一些标识会话ID及其更新状态的附加信息。

该值是一个 PendingIntent

Broadcast extras

也可以看看:

常量值:“android.media.intent.extra.SESSION_STATUS_UPDATE_RECEIVER”

Hooray!