public final class TimelineQueueEditor extends java.lang.Object implements MediaSessionConnector.QueueEditor, MediaSessionConnector.CommandReceiver
MediaSessionConnector.QueueEditor implementation based on the ConcatenatingMediaSource.
This class implements the MediaSessionConnector.CommandReceiver interface and handles
the COMMAND_MOVE_QUEUE_ITEM to move a queue item instead of removing and inserting it.
This allows to move the currently playing window without interrupting playback.
| Modifier and Type | Class and Description |
|---|---|
static class |
TimelineQueueEditor.MediaIdEqualityChecker
Media description comparator comparing the media IDs.
|
static interface |
TimelineQueueEditor.MediaSourceFactory
Factory to create
MediaSources. |
static interface |
TimelineQueueEditor.QueueDataAdapter
Adapter to get
MediaDescriptionCompat of items in the queue and to notify the
application about changes in the queue to sync the data structure backing the
MediaSessionConnector. |
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
COMMAND_MOVE_QUEUE_ITEM |
static java.lang.String |
EXTRA_FROM_INDEX |
static java.lang.String |
EXTRA_TO_INDEX |
| Constructor and Description |
|---|
TimelineQueueEditor(android.support.v4.media.session.MediaControllerCompat mediaController,
com.google.android.exoplayer2.source.ConcatenatingMediaSource queueMediaSource,
TimelineQueueEditor.QueueDataAdapter queueDataAdapter,
TimelineQueueEditor.MediaSourceFactory sourceFactory)
Creates a new
TimelineQueueEditor with a given mediaSourceFactory. |
TimelineQueueEditor(android.support.v4.media.session.MediaControllerCompat mediaController,
com.google.android.exoplayer2.source.ConcatenatingMediaSource queueMediaSource,
TimelineQueueEditor.QueueDataAdapter queueDataAdapter,
TimelineQueueEditor.MediaSourceFactory sourceFactory,
com.google.android.exoplayer2.ext.mediasession.TimelineQueueEditor.MediaDescriptionEqualityChecker equalityChecker)
Creates a new
TimelineQueueEditor with a given mediaSourceFactory. |
| Modifier and Type | Method and Description |
|---|---|
java.lang.String[] |
getCommands()
Returns the commands the receiver handles, or
null if no commands need to be handled. |
void |
onAddQueueItem(com.google.android.exoplayer2.Player player,
android.support.v4.media.MediaDescriptionCompat description)
See
MediaSessionCompat.Callback#onAddQueueItem(MediaDescriptionCompat description). |
void |
onAddQueueItem(com.google.android.exoplayer2.Player player,
android.support.v4.media.MediaDescriptionCompat description,
int index)
See
MediaSessionCompat.Callback#onAddQueueItem(MediaDescriptionCompat description, int
index). |
void |
onCommand(com.google.android.exoplayer2.Player player,
java.lang.String command,
android.os.Bundle extras,
android.os.ResultReceiver cb)
See
MediaSessionCompat.Callback#onCommand(String, Bundle, ResultReceiver). |
void |
onRemoveQueueItem(com.google.android.exoplayer2.Player player,
android.support.v4.media.MediaDescriptionCompat description)
See
MediaSessionCompat.Callback#onRemoveQueueItem(MediaDescriptionCompat
description). |
public static final java.lang.String COMMAND_MOVE_QUEUE_ITEM
public static final java.lang.String EXTRA_FROM_INDEX
public static final java.lang.String EXTRA_TO_INDEX
public TimelineQueueEditor(@NonNull
android.support.v4.media.session.MediaControllerCompat mediaController,
@NonNull
com.google.android.exoplayer2.source.ConcatenatingMediaSource queueMediaSource,
@NonNull
TimelineQueueEditor.QueueDataAdapter queueDataAdapter,
@NonNull
TimelineQueueEditor.MediaSourceFactory sourceFactory)
TimelineQueueEditor with a given mediaSourceFactory.mediaController - A MediaControllerCompat to read the current queue.queueMediaSource - The ConcatenatingMediaSource to manipulate.queueDataAdapter - A TimelineQueueEditor.QueueDataAdapter to change the backing data.sourceFactory - The TimelineQueueEditor.MediaSourceFactory to build media sources.public TimelineQueueEditor(@NonNull
android.support.v4.media.session.MediaControllerCompat mediaController,
@NonNull
com.google.android.exoplayer2.source.ConcatenatingMediaSource queueMediaSource,
@NonNull
TimelineQueueEditor.QueueDataAdapter queueDataAdapter,
@NonNull
TimelineQueueEditor.MediaSourceFactory sourceFactory,
@NonNull
com.google.android.exoplayer2.ext.mediasession.TimelineQueueEditor.MediaDescriptionEqualityChecker equalityChecker)
TimelineQueueEditor with a given mediaSourceFactory.mediaController - A MediaControllerCompat to read the current queue.queueMediaSource - The ConcatenatingMediaSource to manipulate.queueDataAdapter - A TimelineQueueEditor.QueueDataAdapter to change the backing data.sourceFactory - The TimelineQueueEditor.MediaSourceFactory to build media sources.equalityChecker - The MediaDescriptionEqualityChecker to match queue items.public void onAddQueueItem(com.google.android.exoplayer2.Player player,
android.support.v4.media.MediaDescriptionCompat description)
MediaSessionConnector.QueueEditorMediaSessionCompat.Callback#onAddQueueItem(MediaDescriptionCompat description).onAddQueueItem in interface MediaSessionConnector.QueueEditorpublic void onAddQueueItem(com.google.android.exoplayer2.Player player,
android.support.v4.media.MediaDescriptionCompat description,
int index)
MediaSessionConnector.QueueEditorMediaSessionCompat.Callback#onAddQueueItem(MediaDescriptionCompat description, int
index).onAddQueueItem in interface MediaSessionConnector.QueueEditorpublic void onRemoveQueueItem(com.google.android.exoplayer2.Player player,
android.support.v4.media.MediaDescriptionCompat description)
MediaSessionConnector.QueueEditorMediaSessionCompat.Callback#onRemoveQueueItem(MediaDescriptionCompat
description).onRemoveQueueItem in interface MediaSessionConnector.QueueEditor@NonNull public java.lang.String[] getCommands()
MediaSessionConnector.CommandReceivernull if no commands need to be handled.getCommands in interface MediaSessionConnector.CommandReceiverpublic void onCommand(com.google.android.exoplayer2.Player player,
java.lang.String command,
android.os.Bundle extras,
android.os.ResultReceiver cb)
MediaSessionConnector.CommandReceiverMediaSessionCompat.Callback#onCommand(String, Bundle, ResultReceiver).onCommand in interface MediaSessionConnector.CommandReceiver