public class RemotePlaybackClient
extends Object
java.lang.Object | |
↳ | android.support.v7.media.RemotePlaybackClient |
使用 MediaControlIntent
定义的远程回放协议在远程路由上播放媒体的辅助类。
客户端维护会话状态,并提供简化的界面,用于向单个路由发布远程回放媒体控制意图。
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
|
RemotePlaybackClient (Context context, MediaRouter.RouteInfo route)
为路线创建远程回放客户端。
Parameters | |
---|---|
context |
Context
|
route |
MediaRouter.RouteInfo : The media route. |
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. |
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. |
String getSessionId ()
获取当前会话ID(如果有)。
Returns | |
---|---|
String |
The current session id, or null if none. |
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. |
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. |
boolean hasSession ()
如果客户端当前有会话,则返回true。
相当于检查 getSessionId()
是否返回非空结果。
Returns | |
---|---|
boolean |
True if there is a current session. |
boolean isMessagingSupported ()
如果路由支持消息,则返回true。
:如果路由支持所有基本的远程回放的行动和所有的以下操作此方法返回true start session
, send message
, end session
。
Returns | |
---|---|
boolean |
True if session management is supported. Implies isRemotePlaybackSupported() is also true. |
也可以看看:
boolean isQueuingSupported ()
如果路由支持排队功能,则返回true。
如果路线不支持排队,则一次只能播放一个媒体项目,并且 enqueue(Uri, String, Bundle, long, Bundle, RemotePlaybackClient.ItemActionCallback)
方法将不可用。
该方法返回true,如果路由支持所有基本的远程回放的行动和所有的以下操作: enqueue
, remove
。
Returns | |
---|---|
boolean |
True if queuing is supported. Implies isRemotePlaybackSupported() is also true. |
也可以看看:
boolean isRemotePlaybackSupported ()
如果路由支持远程播放,则返回true。
如果路由不支持远程回放,则客户端提供的功能都不可用。
:如果路由支持所有以下操作此方法返回true play
, seek
, get status
, pause
, resume
, stop
。
Returns | |
---|---|
boolean |
True if remote playback is supported. |
boolean isSessionManagementSupported ()
如果路由支持会话管理功能,则返回true。
如果路由不支持会话管理,那么直到播放第一个媒体项目时才会创建会话。
:如果路由支持所有基本的远程回放的行动和所有的以下操作此方法返回true start session
, get session status
, end session
。
Returns | |
---|---|
boolean |
True if session management is supported. Implies isRemotePlaybackSupported() is also true. |
也可以看看:
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. |
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. |
void release ()
释放客户拥有的资源。
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. |
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. |
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. |
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. |
void setOnMessageReceivedListener (RemotePlaybackClient.OnMessageReceivedListener listener)
设置一个回调,当从远程回放客户端的此实例创建的媒体会话更改发送消息时应接收消息。
应该在会话创建之前设置回调。
Parameters | |
---|---|
listener |
RemotePlaybackClient.OnMessageReceivedListener : The callback to set. May be null to remove the previous callback. |
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. |
void setStatusCallback (RemotePlaybackClient.StatusCallback callback)
设置当该远程回放客户端实例创建的媒体会话或媒体项目状态发生更改时应接收状态更新的回调。
在创建会话或发出任何播放命令之前,应设置回调。
Parameters | |
---|---|
callback |
RemotePlaybackClient.StatusCallback : The callback to set. May be null to remove the previous callback. |
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. |
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. |