public final class MediaControllerCompat
extends Object
java.lang.Object | |
↳ | android.support.v4.media.session.MediaControllerCompat |
允许应用与正在进行的媒体会话进行互动。 媒体按钮和其他命令可以发送到会话。 回调可以被注册以接收来自会话的更新,诸如元数据和播放状态改变。
如果您拥有来自会话所有者的 MediaSessionCompat.Token
,则可以创建MediaController。
MediaController对象是线程安全的。
这是帮助您以向后兼容的方式访问API级别4之后引入的 MediaSession
功能。
Nested classes |
|
---|---|
class |
MediaControllerCompat.Callback 从会话接收更新的回调。 |
class |
MediaControllerCompat.PlaybackInfo 掌握有关此会话的卷处理方式的信息。 |
class |
MediaControllerCompat.TransportControls 用于控制会话媒体播放的界面。 |
Public constructors |
|
---|---|
MediaControllerCompat(Context context, MediaSessionCompat session) 从会话创建媒体控制器。 |
|
MediaControllerCompat(Context context, MediaSessionCompat.Token sessionToken) 从可能从其他进程获取的会话令牌创建媒体控制器。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
MediaControllerCompat (Context context, MediaSessionCompat session)
从会话创建媒体控制器。
Parameters | |
---|---|
context |
Context
|
session |
MediaSessionCompat : The session to be controlled. |
MediaControllerCompat (Context context, MediaSessionCompat.Token sessionToken)
从可能从其他进程获取的会话令牌创建媒体控制器。
Parameters | |
---|---|
context |
Context
|
sessionToken |
MediaSessionCompat.Token : The token of the session to be controlled. |
Throws | |
---|---|
RemoteException |
if the session is not accessible. |
void adjustVolume (int direction, int flags)
调整此会话正在播放的输出音量。 方向必须之一ADJUST_LOWER
, ADJUST_RAISE
,或ADJUST_SAME
。 如果会话不支持VOLUME_CONTROL_RELATIVE
或VOLUME_CONTROL_ABSOLUTE
则该命令将被忽略。 可以使用AudioManager
的标志来影响处理。
Parameters | |
---|---|
direction |
int : The direction to adjust the volume in. |
flags |
int : Any flags to pass with the command. |
也可以看看:
boolean dispatchMediaButtonEvent (KeyEvent keyEvent)
将指定的媒体按钮事件发送到会话。 只有媒体密钥可以通过此方法发送,其他密钥将被忽略。
Parameters | |
---|---|
keyEvent |
KeyEvent : The media button event to dispatch. |
Returns | |
---|---|
boolean |
true if the event was sent to the session, false otherwise. |
long getFlags ()
获取此会话的标志。 标志在MediaSessionCompat
中定义。
Returns | |
---|---|
long |
The current set of flags for the session. |
Object getMediaController ()
获取底层框架 MediaController
对象。
此方法仅在API 21+上受支持。
Returns | |
---|---|
Object |
The underlying MediaController object, or null if none. |
MediaMetadataCompat getMetadata ()
获取此会话的当前元数据。
Returns | |
---|---|
MediaMetadataCompat |
The current MediaMetadata or null. |
String getPackageName ()
获取会话所有者的包名称。
Returns | |
---|---|
String |
The package name of of the session owner. |
MediaControllerCompat.PlaybackInfo getPlaybackInfo ()
获取此会话的当前播放信息。
Returns | |
---|---|
MediaControllerCompat.PlaybackInfo |
The current playback info or null. |
PlaybackStateCompat getPlaybackState ()
获取此会话的当前播放状态。
Returns | |
---|---|
PlaybackStateCompat |
The current PlaybackState or null |
List<MediaSessionCompat.QueueItem> getQueue ()
如果设置了此会话,则获取当前的播放队列。 如果你只关心当前应该使用的项目getMetadata()
。
Returns | |
---|---|
List<MediaSessionCompat.QueueItem> |
The current play queue or null. |
int getRatingType ()
获取会话支持的评级类型。 之一:
RATING_NONE
RATING_HEART
RATING_THUMB_UP_DOWN
RATING_3_STARS
RATING_4_STARS
RATING_5_STARS
RATING_PERCENTAGE
Returns | |
---|---|
int |
The supported rating type |
PendingIntent getSessionActivity ()
获取启动与此会话关联的用户界面(如果存在)的意图。
Returns | |
---|---|
PendingIntent |
A PendingIntent to launch UI or null. |
MediaSessionCompat.Token getSessionToken ()
获取此控制器连接到的会话的令牌。
Returns | |
---|---|
MediaSessionCompat.Token |
The session's token. |
MediaControllerCompat.TransportControls getTransportControls ()
获取此会话的 MediaControllerCompat.TransportControls
实例。
Returns | |
---|---|
MediaControllerCompat.TransportControls |
A controls instance |
void registerCallback (MediaControllerCompat.Callback callback, Handler handler)
添加一个回调以接收来自会话的更新。 更新将发布在指定的处理程序线程上。
Parameters | |
---|---|
callback |
MediaControllerCompat.Callback : The callback object, must not be null. |
handler |
Handler : The handler to post updates on. If null the callers thread will be used. |
void registerCallback (MediaControllerCompat.Callback callback)
添加回调以接收来自会话的更新。 更新将发布在调用者的线程上。
Parameters | |
---|---|
callback |
MediaControllerCompat.Callback : The callback object, must not be null. |
void sendCommand (String command, Bundle params, ResultReceiver cb)
向会话发送通用命令。 会话创建者决定他们将支持哪些命令和参数。 因此,命令只能发送给控制器拥有的会话。
Parameters | |
---|---|
command |
String : The command to send |
params |
Bundle : Any parameters to include with the command |
cb |
ResultReceiver : The callback to receive the result on |
void setVolumeTo (int value, int flags)
设置此会话正在播放的输出音量。 如果该命令不支持VOLUME_CONTROL_ABSOLUTE
则该命令将被忽略。 可以使用AudioManager
的标志来影响处理。
Parameters | |
---|---|
value |
int : The value to set it to, between 0 and the reported max. |
flags |
int : Flags from AudioManager to include with the volume request. |
也可以看看:
void unregisterCallback (MediaControllerCompat.Callback callback)
停止接收指定回调的更新。 如果更新已发布,您可能仍会在调用此方法后收到它。
Parameters | |
---|---|
callback |
MediaControllerCompat.Callback : The callback to remove |