public final class MediaController
extends Object
java.lang.Object | |
↳ | android.media.session.MediaController |
允许应用与正在进行的媒体会话进行互动。 媒体按钮和其他命令可以发送到会话。 回调可以被注册以接收来自会话的更新,诸如元数据和播放状态改变。
将MediaController可以通过创建 MediaSessionManager
,如果你持有的“android.permission.MEDIA_CONTENT_CONTROL”权限或者是启用通知监听器或通过获取 MediaSession.Token
直接从会话所有者。
MediaController对象是线程安全的。
Nested classes |
|
---|---|
class |
MediaController.Callback 从会话接收更新的回调。 |
class |
MediaController.PlaybackInfo 保存有关当前回放的信息以及该会话的音频处理方式。 |
class |
MediaController.TransportControls 用于控制会话媒体播放的界面。 |
Public constructors |
|
---|---|
MediaController(Context context, MediaSession.Token token) 从会话令牌创建一个新的MediaController。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
MediaController (Context context, MediaSession.Token token)
从会话令牌创建一个新的MediaController。
Parameters | |
---|---|
context |
Context : The caller's context. |
token |
MediaSession.Token : The token for the session. |
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 ()
获取此会话的标志。 标志在MediaSession
中定义。
Returns | |
---|---|
long |
The current set of flags for the session. |
MediaMetadata getMetadata ()
获取此会话的当前元数据。
Returns | |
---|---|
MediaMetadata |
The current MediaMetadata or null. |
String getPackageName ()
获取会话所有者的包名称。
Returns | |
---|---|
String |
The package name of of the session owner. |
MediaController.PlaybackInfo getPlaybackInfo ()
获取此会话的当前播放信息。
Returns | |
---|---|
MediaController.PlaybackInfo |
The current playback info or null. |
PlaybackState getPlaybackState ()
获取此会话的当前播放状态。
Returns | |
---|---|
PlaybackState |
The current PlaybackState or null |
List<MediaSession.QueueItem> getQueue ()
如果设置了此会话,则获取当前的播放队列。 如果您只关心当前应该使用的项目getMetadata()
。
Returns | |
---|---|
List<MediaSession.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. |
MediaSession.Token getSessionToken ()
获取与此连接的会话的令牌。
Returns | |
---|---|
MediaSession.Token |
The token for the connected session. |
MediaController.TransportControls getTransportControls ()
获取 MediaController.TransportControls
实例将传输操作发送到关联的会话。
Returns | |
---|---|
MediaController.TransportControls |
A transport controls instance. |
void registerCallback (MediaController.Callback callback, Handler handler)
注册回调以接收来自会话的更新。 更新将发布在指定的处理程序线程上。
Parameters | |
---|---|
callback |
MediaController.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 (MediaController.Callback callback)
注册回调以接收来自会话的更新。 更新将发布在调用者的线程上。
Parameters | |
---|---|
callback |
MediaController.Callback : The callback object, must not be null. |
void sendCommand (String command, Bundle args, ResultReceiver cb)
向会话发送通用命令。 会话创建者决定他们将支持哪些命令和参数。 因此,命令只能发送给控制器拥有的会话。
Parameters | |
---|---|
command |
String : The command to send |
args |
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 (MediaController.Callback callback)
取消注册指定的回调。 如果更新已发布,您可能仍会在调用此方法后收到它。
Parameters | |
---|---|
callback |
MediaController.Callback : The callback to remove. |