Most visited

Recently visited

Added in API level 21

MediaController

public final class MediaController
extends Object

java.lang.Object
   ↳ android.media.session.MediaController


允许应用与正在进行的媒体会话进行互动。 媒体按钮和其他命令可以发送到会话。 回调可以被注册以接收来自会话的更新,诸如元数据和播放状态改变。

将MediaController可以通过创建 MediaSessionManager ,如果你持有的“android.permission.MEDIA_CONTENT_CONTROL”权限或者是启用通知监听器或通过获取 MediaSession.Token直接从会话所有者。

MediaController对象是线程安全的。

Summary

Nested classes

class MediaController.Callback

从会话接收更新的回调。

class MediaController.PlaybackInfo

保存有关当前回放的信息以及该会话的音频处理方式。

class MediaController.TransportControls

用于控制会话媒体播放的界面。

Public constructors

MediaController(Context context, MediaSession.Token token)

从会话令牌创建一个新的MediaController。

Public methods

void adjustVolume(int direction, int flags)

调整此会话正在播放的输出音量。

boolean dispatchMediaButtonEvent(KeyEvent keyEvent)

将指定的媒体按钮事件发送到会话。

Bundle getExtras()

获得本次会议的额外资讯。

long getFlags()

获取此会话的标志。

MediaMetadata getMetadata()

获取此会话的当前元数据。

String getPackageName()

获取会话所有者的包名称。

MediaController.PlaybackInfo getPlaybackInfo()

获取此会话的当前播放信息。

PlaybackState getPlaybackState()

获取此会话的当前播放状态。

List<MediaSession.QueueItem> getQueue()

如果设置了此会话,则获取当前的播放队列。

CharSequence getQueueTitle()

获取此会话的队列标题。

int getRatingType()

获取会话支持的评级类型。

PendingIntent getSessionActivity()

获取启动与此会话关联的用户界面(如果存在)的意图。

MediaSession.Token getSessionToken()

获取与此连接的会话的令牌。

MediaController.TransportControls getTransportControls()

获取 MediaController.TransportControls实例以将传输操作发送到关联的会话。

void registerCallback(MediaController.Callback callback, Handler handler)

注册回调以接收来自会话的更新。

void registerCallback(MediaController.Callback callback)

注册回调以接收来自会话的更新。

void sendCommand(String command, Bundle args, ResultReceiver cb)

向会话发送通用命令。

void setVolumeTo(int value, int flags)

设置此会话正在播放的输出音量。

void unregisterCallback(MediaController.Callback callback)

取消注册指定的回调。

Inherited methods

From class java.lang.Object

Public constructors

MediaController

Added in API level 21
MediaController (Context context, 
                MediaSession.Token token)

从会话令牌创建一个新的MediaController。

Parameters
context Context: The caller's context.
token MediaSession.Token: The token for the session.

Public methods

adjustVolume

Added in API level 21
void adjustVolume (int direction, 
                int flags)

调整此会话正在播放的输出音量。 方向必须之一ADJUST_LOWERADJUST_RAISE ,或ADJUST_SAME 如果会话不支持VOLUME_CONTROL_RELATIVEVOLUME_CONTROL_ABSOLUTE该命令将被忽略。 可以使用AudioManager的标志来影响处理。

Parameters
direction int: The direction to adjust the volume in.
flags int: Any flags to pass with the command.

也可以看看:

dispatchMediaButtonEvent

Added in API level 21
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.

getExtras

Added in API level 21
Bundle getExtras ()

获得本次会议的额外资讯。

Returns
Bundle

getFlags

Added in API level 21
long getFlags ()

获取此会话的标志。 标志在MediaSession中定义。

Returns
long The current set of flags for the session.

getMetadata

Added in API level 21
MediaMetadata getMetadata ()

获取此会话的当前元数据。

Returns
MediaMetadata The current MediaMetadata or null.

getPackageName

Added in API level 21
String getPackageName ()

获取会话所有者的包名称。

Returns
String The package name of of the session owner.

getPlaybackInfo

Added in API level 21
MediaController.PlaybackInfo getPlaybackInfo ()

获取此会话的当前播放信息。

Returns
MediaController.PlaybackInfo The current playback info or null.

getPlaybackState

Added in API level 21
PlaybackState getPlaybackState ()

获取此会话的当前播放状态。

Returns
PlaybackState The current PlaybackState or null

getQueue

Added in API level 21
List<MediaSession.QueueItem> getQueue ()

如果设置了此会话,则获取当前的播放队列。 如果您只关心当前应该使用的项目getMetadata()

Returns
List<MediaSession.QueueItem> The current play queue or null.

getQueueTitle

Added in API level 21
CharSequence getQueueTitle ()

获取此会话的队列标题。

Returns
CharSequence

getRatingType

Added in API level 21
int getRatingType ()

获取会话支持的评级类型。 之一:

Returns
int The supported rating type

getSessionActivity

Added in API level 21
PendingIntent getSessionActivity ()

获取启动与此会话关联的用户界面(如果存在)的意图。

Returns
PendingIntent A PendingIntent to launch UI or null.

getSessionToken

Added in API level 21
MediaSession.Token getSessionToken ()

获取与此连接的会话的令牌。

Returns
MediaSession.Token The token for the connected session.

getTransportControls

Added in API level 21
MediaController.TransportControls getTransportControls ()

获取 MediaController.TransportControls实例将传输操作发送到关联的会话。

Returns
MediaController.TransportControls A transport controls instance.

registerCallback

Added in API level 21
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.

registerCallback

Added in API level 21
void registerCallback (MediaController.Callback callback)

注册回调以接收来自会话的更新。 更新将发布在调用者的线程上。

Parameters
callback MediaController.Callback: The callback object, must not be null.

sendCommand

Added in API level 21
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

setVolumeTo

Added in API level 21
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.

也可以看看:

unregisterCallback

Added in API level 21
void unregisterCallback (MediaController.Callback callback)

取消注册指定的回调。 如果更新已发布,您可能仍会在调用此方法后收到它。

Parameters
callback MediaController.Callback: The callback to remove.

Hooray!