Most visited

Recently visited

RemotePlaybackClient

public class RemotePlaybackClient
extends Object

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


使用 MediaControlIntent定义的远程回放协议在远程路由上播放媒体的辅助类。

客户端维护会话状态,并提供简化的界面,用于向单个路由发布远程回放媒体控制意图。

Summary

Nested classes

class RemotePlaybackClient.ActionCallback

用于远程回放请求的基本回调类型。

class RemotePlaybackClient.ItemActionCallback

回调操作项目的远程回放请求。

interface RemotePlaybackClient.OnMessageReceivedListener

将从媒体会话接收消息的回调。

class RemotePlaybackClient.SessionActionCallback

对会话进行操作的远程回放请求的回叫。

class RemotePlaybackClient.StatusCallback

将接收媒体状态更新的回调。

Public constructors

RemotePlaybackClient(Context context, MediaRouter.RouteInfo route)

为路线创建远程回放客户端。

Public methods

void endSession(Bundle extras, RemotePlaybackClient.SessionActionCallback callback)

发送结束媒体播放会话的请求。

void enqueue(Uri contentUri, String mimeType, Bundle metadata, long positionMillis, Bundle extras, RemotePlaybackClient.ItemActionCallback callback)

发送排队媒体项目的请求。

String getSessionId()

获取当前会话ID(如果有)。

void getSessionStatus(Bundle extras, RemotePlaybackClient.SessionActionCallback callback)

发送请求以获取媒体播放会话的状态。

void getStatus(String itemId, Bundle extras, RemotePlaybackClient.ItemActionCallback callback)

发送请求以获取媒体项目的状态。

boolean hasSession()

如果客户端当前有会话,则返回true。

boolean isMessagingSupported()

如果路由支持消息,则返回true。

boolean isQueuingSupported()

如果路由支持排队功能,则返回true。

boolean isRemotePlaybackSupported()

如果路由支持远程播放,则返回true。

boolean isSessionManagementSupported()

如果路由支持会话管理功能,则返回true。

void pause(Bundle extras, RemotePlaybackClient.SessionActionCallback callback)

发送暂停媒体播放的请求。

void play(Uri contentUri, String mimeType, Bundle metadata, long positionMillis, Bundle extras, RemotePlaybackClient.ItemActionCallback callback)

发送播放媒体项目的请求。

void release()

释放客户拥有的资源。

void remove(String itemId, Bundle extras, RemotePlaybackClient.ItemActionCallback callback)

发送请求以从队列中删除媒体项目。

void resume(Bundle extras, RemotePlaybackClient.SessionActionCallback callback)

发送请求以恢复(取消暂停)媒体播放。

void seek(String itemId, long positionMillis, Bundle extras, RemotePlaybackClient.ItemActionCallback callback)

发送请求以查找媒体项目中的新位置。

void sendMessage(Bundle message, RemotePlaybackClient.SessionActionCallback callback)

发送消息。

void setOnMessageReceivedListener(RemotePlaybackClient.OnMessageReceivedListener listener)

设置一个回调,当从远程回放客户端的此实例创建的媒体会话更改发送消息时应接收消息。

void setSessionId(String sessionId)

设置当前会话ID。

void setStatusCallback(RemotePlaybackClient.StatusCallback callback)

设置当该远程回放客户端实例创建的媒体会话或媒体项目状态发生更改时应接收状态更新的回调。

void startSession(Bundle extras, RemotePlaybackClient.SessionActionCallback callback)

发送请求以开始新的媒体播放会话。

void stop(Bundle extras, RemotePlaybackClient.SessionActionCallback callback)

发送停止媒体播放的请求并清除媒体播放队列。

Inherited methods

From class java.lang.Object

Public constructors

RemotePlaybackClient

RemotePlaybackClient (Context context, 
                MediaRouter.RouteInfo route)

为路线创建远程回放客户端。

Parameters
context Context
route MediaRouter.RouteInfo: The media route.

Public methods

endSession

void endSession (Bundle extras, 
                RemotePlaybackClient.SessionActionCallback callback)

发送结束媒体播放会话的请求。

该请求在当前会话中发出。 如果此请求成功,则在调用回调后, session id property将被设置为空。

有关此请求的语义的更多信息,请参阅 ACTION_END_SESSION

Parameters
extras Bundle: A bundle of extra arguments to be added to the ACTION_END_SESSION intent, or null if none.
callback RemotePlaybackClient.SessionActionCallback: A callback to invoke when the request has been processed, or null if none.
Throws
IllegalStateException if there is no current session.
UnsupportedOperationException if the route does not support session management.

也可以看看:

enqueue

void enqueue (Uri contentUri, 
                String mimeType, 
                Bundle metadata, 
                long positionMillis, 
                Bundle extras, 
                RemotePlaybackClient.ItemActionCallback callback)

发送排队媒体项目的请求。

排队一个新的项目玩。 如果队列先前已暂停,则会保持暂停状态。

该请求在当前会话中发出。 如果没有会话可用,则隐式创建一个会话。

有关此请求的语义的更多信息,请参阅 ACTION_ENQUEUE

Parameters
contentUri Uri: The content Uri to enqueue.
mimeType String: The mime type of the content, or null if unknown.
metadata Bundle: The media item metadata bundle, or null if none.
positionMillis long: The initial content position for the item in milliseconds, or 0 to start at the beginning.
extras Bundle: A bundle of extra arguments to be added to the ACTION_ENQUEUE intent, or null if none.
callback RemotePlaybackClient.ItemActionCallback: A callback to invoke when the request has been processed, or null if none.
Throws
UnsupportedOperationException if the route does not support queuing.

也可以看看:

getSessionId

String getSessionId ()

获取当前会话ID(如果有)。

Returns
String The current session id, or null if none.

getSessionStatus

void getSessionStatus (Bundle extras, 
                RemotePlaybackClient.SessionActionCallback callback)

发送请求以获取媒体播放会话的状态。

该请求在当前会话中发出。

有关此请求的语义的更多信息,请参阅 ACTION_GET_SESSION_STATUS

Parameters
extras Bundle: A bundle of extra arguments to be added to the ACTION_GET_SESSION_STATUS intent, or null if none.
callback RemotePlaybackClient.SessionActionCallback: A callback to invoke when the request has been processed, or null if none.
Throws
IllegalStateException if there is no current session.
UnsupportedOperationException if the route does not support session management.

也可以看看:

getStatus

void getStatus (String itemId, 
                Bundle extras, 
                RemotePlaybackClient.ItemActionCallback callback)

发送请求以获取媒体项目的状态。

该请求在当前会话中发出。

有关此请求的语义的更多信息,请参阅 ACTION_GET_STATUS

Parameters
itemId String: The item id.
extras Bundle: A bundle of extra arguments to be added to the ACTION_GET_STATUS intent, or null if none.
callback RemotePlaybackClient.ItemActionCallback: A callback to invoke when the request has been processed, or null if none.
Throws
IllegalStateException if there is no current session.

也可以看看:

hasSession

boolean hasSession ()

如果客户端当前有会话,则返回true。

相当于检查 getSessionId()是否返回非空结果。

Returns
boolean True if there is a current session.

isMessagingSupported

boolean isMessagingSupported ()

如果路由支持消息,则返回true。

:如果路由支持所有基本的远程回放的行动和所有的以下操作此方法返回true start sessionsend messageend session

Returns
boolean True if session management is supported. Implies isRemotePlaybackSupported() is also true.

也可以看看:

isQueuingSupported

boolean isQueuingSupported ()

如果路由支持排队功能,则返回true。

如果路线不支持排队,则一次只能播放一个媒体项目,并且 enqueue(Uri, String, Bundle, long, Bundle, RemotePlaybackClient.ItemActionCallback)方法将不可用。

该方法返回true,如果路由支持所有基本的远程回放的行动和所有的以下操作: enqueueremove

Returns
boolean True if queuing is supported. Implies isRemotePlaybackSupported() is also true.

也可以看看:

isRemotePlaybackSupported

boolean isRemotePlaybackSupported ()

如果路由支持远程播放,则返回true。

如果路由不支持远程回放,则客户端提供的功能都不可用。

:如果路由支持所有以下操作此方法返回true playseekget statuspauseresumestop

Returns
boolean True if remote playback is supported.

isSessionManagementSupported

boolean isSessionManagementSupported ()

如果路由支持会话管理功能,则返回true。

如果路由不支持会话管理,那么直到播放第一个媒体项目时才会创建会话。

:如果路由支持所有基本的远程回放的行动和所有的以下操作此方法返回true start sessionget session statusend session

Returns
boolean True if session management is supported. Implies isRemotePlaybackSupported() is also true.

也可以看看:

pause

void pause (Bundle extras, 
                RemotePlaybackClient.SessionActionCallback callback)

发送暂停媒体播放的请求。

该请求在当前会话中发出。 如果播放已暂停,则该请求不起作用。

有关此请求的语义的更多信息,请参阅 ACTION_PAUSE

Parameters
extras Bundle: A bundle of extra arguments to be added to the ACTION_PAUSE intent, or null if none.
callback RemotePlaybackClient.SessionActionCallback: A callback to invoke when the request has been processed, or null if none.
Throws
IllegalStateException if there is no current session.

也可以看看:

play

void play (Uri contentUri, 
                String mimeType, 
                Bundle metadata, 
                long positionMillis, 
                Bundle extras, 
                RemotePlaybackClient.ItemActionCallback callback)

发送播放媒体项目的请求。

清除队列并立即开始播放新项目。 如果队列先前已暂停,那么它将作为此请求的副作用继续。

该请求在当前会话中发出。 如果没有会话可用,则隐式创建一个会话。

有关此请求的语义的更多信息,请参阅 ACTION_PLAY

Parameters
contentUri Uri: The content Uri to play.
mimeType String: The mime type of the content, or null if unknown.
metadata Bundle: The media item metadata bundle, or null if none.
positionMillis long: The initial content position for the item in milliseconds, or 0 to start at the beginning.
extras Bundle: A bundle of extra arguments to be added to the ACTION_PLAY intent, or null if none.
callback RemotePlaybackClient.ItemActionCallback: A callback to invoke when the request has been processed, or null if none.
Throws
UnsupportedOperationException if the route does not support remote playback.

也可以看看:

release

void release ()

释放客户拥有的资源。

remove

void remove (String itemId, 
                Bundle extras, 
                RemotePlaybackClient.ItemActionCallback callback)

发送请求以从队列中删除媒体项目。

该请求在当前会话中发出。

有关此请求的语义的更多信息,请参阅 ACTION_REMOVE

Parameters
itemId String: The item id.
extras Bundle: A bundle of extra arguments to be added to the ACTION_REMOVE intent, or null if none.
callback RemotePlaybackClient.ItemActionCallback: A callback to invoke when the request has been processed, or null if none.
Throws
IllegalStateException if there is no current session.
UnsupportedOperationException if the route does not support queuing.

也可以看看:

resume

void resume (Bundle extras, 
                RemotePlaybackClient.SessionActionCallback callback)

发送请求以恢复(取消暂停)媒体播放。

该请求在当前会话中发出。 如果播放未暂停,则该请求不起作用。

有关此请求的语义的更多信息,请参阅 ACTION_RESUME

Parameters
extras Bundle: A bundle of extra arguments to be added to the ACTION_RESUME intent, or null if none.
callback RemotePlaybackClient.SessionActionCallback: A callback to invoke when the request has been processed, or null if none.
Throws
IllegalStateException if there is no current session.

也可以看看:

seek

void seek (String itemId, 
                long positionMillis, 
                Bundle extras, 
                RemotePlaybackClient.ItemActionCallback callback)

发送请求以查找媒体项目中的新位置。

寻求新的位置。 如果队列先前已暂停,则该队列保持暂停状态,但该项目的新位置仍会被记住。

该请求在当前会话中发出。

有关此请求的语义的更多信息,请参阅 ACTION_SEEK

Parameters
itemId String: The item id.
positionMillis long: The new content position for the item in milliseconds, or 0 to start at the beginning.
extras Bundle: A bundle of extra arguments to be added to the ACTION_SEEK intent, or null if none.
callback RemotePlaybackClient.ItemActionCallback: A callback to invoke when the request has been processed, or null if none.
Throws
IllegalStateException if there is no current session.

也可以看看:

sendMessage

void sendMessage (Bundle message, 
                RemotePlaybackClient.SessionActionCallback callback)

发送消息。

该请求在当前会话中发出。

有关此请求的语义的更多信息,请参阅 ACTION_SEND_MESSAGE

Parameters
message Bundle: A bundle message denoting EXTRA_MESSAGE.
callback RemotePlaybackClient.SessionActionCallback: A callback to invoke when the request has been processed, or null if none.
Throws
IllegalStateException if there is no current session.
UnsupportedOperationException if the route does not support messages.

也可以看看:

setOnMessageReceivedListener

void setOnMessageReceivedListener (RemotePlaybackClient.OnMessageReceivedListener listener)

设置一个回调,当从远程回放客户端的此实例创建的媒体会话更改发送消息时应接收消息。

应该在会话创建之前设置回调。

Parameters
listener RemotePlaybackClient.OnMessageReceivedListener: The callback to set. May be null to remove the previous callback.

setSessionId

void setSessionId (String sessionId)

设置当前会话ID。

它通常是没有必要明确设置会话ID,因为它是作为其他请求等的副作用产生 play(Uri, String, Bundle, long, Bundle, RemotePlaybackClient.ItemActionCallback)enqueue(Uri, String, Bundle, long, Bundle, RemotePlaybackClient.ItemActionCallback) ,并 startSession(Bundle, RemotePlaybackClient.SessionActionCallback)

Parameters
sessionId String: The new session id, or null if none.

setStatusCallback

void setStatusCallback (RemotePlaybackClient.StatusCallback callback)

设置当该远程回放客户端实例创建的媒体会话或媒体项目状态发生更改时应接收状态更新的回调。

在创建会话或发出任何播放命令之前,应设置回调。

Parameters
callback RemotePlaybackClient.StatusCallback: The callback to set. May be null to remove the previous callback.

startSession

void startSession (Bundle extras, 
                RemotePlaybackClient.SessionActionCallback callback)

发送请求以开始新的媒体播放会话。

在发布影响会话的其他请求之前,应用程序必须等待回调才能表明此请求已完成。 如果此请求成功,则前一个会话将失效。

有关此请求的语义的更多信息,请参阅 ACTION_START_SESSION

Parameters
extras Bundle: A bundle of extra arguments to be added to the ACTION_START_SESSION intent, or null if none.
callback RemotePlaybackClient.SessionActionCallback: A callback to invoke when the request has been processed, or null if none.
Throws
UnsupportedOperationException if the route does not support session management.

也可以看看:

stop

void stop (Bundle extras, 
                RemotePlaybackClient.SessionActionCallback callback)

发送停止媒体播放的请求并清除媒体播放队列。

该请求在当前会话中发出。 如果队列已经是空的,则请求不起作用。

有关此请求的语义的更多信息,请参阅 ACTION_STOP

Parameters
extras Bundle: A bundle of extra arguments to be added to the ACTION_STOP intent, or null if none.
callback RemotePlaybackClient.SessionActionCallback: A callback to invoke when the request has been processed, or null if none.
Throws
IllegalStateException if there is no current session.

也可以看看:

Hooray!