added in version 22.1.0
belongs to Maven artifact


public final class MediaControllerCompat
extends Object


Allows an app to interact with an ongoing media session. Media buttons and other commands can be sent to the session. A callback may be registered to receive updates from the session, such as metadata and play state changes.

A MediaController can be created if you have a MediaSessionCompat.Token from the session owner.

MediaController objects are thread-safe.

This is a helper for accessing features in MediaSession introduced after API level 4 in a backwards compatible fashion.

If MediaControllerCompat is created with a session token from another process, following methods will not work directly after the creation if the session token is not passed through a MediaBrowserCompat:

Developer Guides

For information about building your media application, read the Media Apps developer guide.


Nested classes

class MediaControllerCompat.Callback

Callback for receiving updates on from the session. 

class MediaControllerCompat.PlaybackInfo

Holds information about the way volume is handled for this session. 

class MediaControllerCompat.TransportControls

Interface for controlling media playback on a session. 

Public constructors

MediaControllerCompat(Context context, MediaSessionCompat session)

Creates a media controller from a session.

MediaControllerCompat(Context context, MediaSessionCompat.Token sessionToken)

Creates a media controller from a session token which may have been obtained from another process.

Public methods

void addQueueItem(MediaDescriptionCompat description)

Adds a queue item from the given description at the end of the play queue of this session.

void addQueueItem(MediaDescriptionCompat description, int index)

Adds a queue item from the given description at the specified position in the play queue of this session.

void adjustVolume(int direction, int flags)

Adjusts the volume of the output this session is playing on.

boolean dispatchMediaButtonEvent(KeyEvent keyEvent)

Sends the specified media button event to the session.

Bundle getExtras()

Gets the extras for this session.

long getFlags()

Gets the flags for this session.

Object getMediaController()

Gets the underlying framework MediaController object.

static MediaControllerCompat getMediaController(Activity activity)

Retrieves the MediaControllerCompat set in the activity by setMediaController(Activity, MediaControllerCompat) for sending media key and volume events.

MediaMetadataCompat getMetadata()

Gets the current metadata for this session.

String getPackageName()

Gets the session owner's package name.

MediaControllerCompat.PlaybackInfo getPlaybackInfo()

Gets the current playback info for this session.

PlaybackStateCompat getPlaybackState()

Gets the current playback state for this session.

List<MediaSessionCompat.QueueItem> getQueue()

Gets the current play queue for this session if one is set.

CharSequence getQueueTitle()

Gets the queue title for this session.