public final class MediaSessionConnector extends Object
MediaSessionCompat to a Player.
The connector listens for actions sent by the media session's controller and implements these actions by calling appropriate ExoPlayer methods. The playback state of the media session is automatically synced with the player. The connector can also be optionally extended by providing various collaborators:
PlaybackStateCompat#ACTION_PREPARE_* and
PlaybackStateCompat#ACTION_PLAY_*) can be handled by a MediaSessionConnector.PlaybackPreparer passed
when calling setPlayer(Player, PlaybackPreparer, CustomActionProvider...). Custom
actions can be handled by passing one or more MediaSessionConnector.CustomActionProviders in a similar way.
MediaSessionConnector.QueueNavigator by
calling setQueueNavigator(QueueNavigator). Use of TimelineQueueNavigator is
recommended for most use cases.MediaSessionConnector.QueueEditor by calling
setQueueEditor(QueueEditor).MediaSessionConnector.ErrorMessageProvider for providing human readable error messages and
corresponding error codes can be set by calling
setErrorMessageProvider(ErrorMessageProvider).| Modifier and Type | Class and Description |
|---|---|
static interface |
MediaSessionConnector.CustomActionProvider
Provides a
PlaybackStateCompat.CustomAction to be published and handles the action when
sent by a media controller. |
static interface |
MediaSessionConnector.ErrorMessageProvider
Converts an exception into an error code and a user readable error message.
|
static interface |
MediaSessionConnector.PlaybackController
Interface to which playback actions are delegated.
|
static interface |
MediaSessionConnector.PlaybackPreparer
Interface to which playback preparation actions are delegated.
|
static interface |
MediaSessionConnector.QueueEditor
Handles media session queue edits.
|
static interface |
MediaSessionConnector.QueueNavigator
Handles queue navigation actions, and updates the media session queue by calling
MediaSessionCompat.setQueue(). |
| Modifier and Type | Field and Description |
|---|---|
static String |
EXTRAS_PITCH |
MediaSessionCompat |
mediaSession
The wrapped
MediaSessionCompat. |
| Constructor and Description |
|---|
MediaSessionConnector(MediaSessionCompat mediaSession)
Creates an instance.
|
MediaSessionConnector(MediaSessionCompat mediaSession,
MediaSessionConnector.PlaybackController playbackController)
Creates an instance.
|
MediaSessionConnector(MediaSessionCompat mediaSession,
MediaSessionConnector.PlaybackController playbackController,
boolean doMaintainMetadata)
Creates an instance.
|
| Modifier and Type | Method and Description |
|---|---|
void |
setErrorMessageProvider(MediaSessionConnector.ErrorMessageProvider errorMessageProvider)
|
void |
setPlayer(Player player,
MediaSessionConnector.PlaybackPreparer playbackPreparer,
MediaSessionConnector.CustomActionProvider... customActionProviders)
Sets the player to be connected to the media session.
|
void |
setQueueEditor(MediaSessionConnector.QueueEditor queueEditor)
Sets the
MediaSessionConnector.QueueEditor to handle queue edits sent by the media controller. |
void |
setQueueNavigator(MediaSessionConnector.QueueNavigator queueNavigator)
Sets the
MediaSessionConnector.QueueNavigator to handle queue navigation actions ACTION_SKIP_TO_NEXT,
ACTION_SKIP_TO_PREVIOUS, ACTION_SKIP_TO_QUEUE_ITEM and
ACTION_SET_SHUFFLE_MODE_ENABLED. |
public static final String EXTRAS_PITCH
public final MediaSessionCompat mediaSession
MediaSessionCompat.public MediaSessionConnector(MediaSessionCompat mediaSession)
setPlayer(Player, PlaybackPreparer, CustomActionProvider...).
Equivalent to MediaSessionConnector(mediaSession, new DefaultPlaybackController()).
mediaSession - The MediaSessionCompat to connect to.public MediaSessionConnector(MediaSessionCompat mediaSession, MediaSessionConnector.PlaybackController playbackController)
setPlayer(Player, PlaybackPreparer, CustomActionProvider...).
Equivalent to MediaSessionConnector(mediaSession, playbackController, true).
mediaSession - The MediaSessionCompat to connect to.playbackController - A MediaSessionConnector.PlaybackController for handling playback actions.public MediaSessionConnector(MediaSessionCompat mediaSession, MediaSessionConnector.PlaybackController playbackController, boolean doMaintainMetadata)
setPlayer(Player, PlaybackPreparer, CustomActionProvider...).mediaSession - The MediaSessionCompat to connect to.playbackController - A MediaSessionConnector.PlaybackController for handling playback actions.doMaintainMetadata - Whether the connector should maintain the metadata of the session. If
false, you need to maintain the metadata of the media session yourself (provide at
least the duration to allow clients to show a progress bar).public void setPlayer(Player player, MediaSessionConnector.PlaybackPreparer playbackPreparer, MediaSessionConnector.CustomActionProvider... customActionProviders)
The order in which any MediaSessionConnector.CustomActionProviders are passed determines the order of the
actions published with the playback state of the session.
player - The player to be connected to the MediaSession.playbackPreparer - An optional MediaSessionConnector.PlaybackPreparer for preparing the player.customActionProviders - An optional MediaSessionConnector.CustomActionProviders to publish and handle
custom actions.public void setErrorMessageProvider(MediaSessionConnector.ErrorMessageProvider errorMessageProvider)
errorMessageProvider - The error message provider.public void setQueueNavigator(MediaSessionConnector.QueueNavigator queueNavigator)
MediaSessionConnector.QueueNavigator to handle queue navigation actions ACTION_SKIP_TO_NEXT,
ACTION_SKIP_TO_PREVIOUS, ACTION_SKIP_TO_QUEUE_ITEM and
ACTION_SET_SHUFFLE_MODE_ENABLED.queueNavigator - The queue navigator.public void setQueueEditor(MediaSessionConnector.QueueEditor queueEditor)
MediaSessionConnector.QueueEditor to handle queue edits sent by the media controller.queueEditor - The queue editor.