public class MediaQueue extends java.lang.Object implements IMediaQueue
IMediaQueue.AutoSkipMode, IMediaQueue.Listener
Modifier and Type | Field and Description |
---|---|
private int |
autoSkipMode |
protected int |
currentIndex |
private int |
itemLoopedCount |
private int |
itemLoopMode |
private java.util.concurrent.CopyOnWriteArraySet<IMediaQueue.Listener> |
listeners |
private java.util.Random |
mRandom |
protected IPlayer |
player |
private java.util.List<? extends IMediaItem> |
queue |
AUTO_SKIP_MODE_LIST_LOOP, AUTO_SKIP_MODE_RANDOM, AUTO_SKIP_MODE_SINGLE, AUTO_SKIP_MODE_SINGLE_LOOP, AUTO_SKIP_MODE_SINGLE_ONCE
Constructor and Description |
---|
MediaQueue() |
Modifier and Type | Method and Description |
---|---|
void |
addListener(IMediaQueue.Listener listener) |
void |
clear()
Removes all of the
IMediaItem s from this queue (optional operation). |
void |
destroy()
destroy this queue
|
int |
getAutoSkipMode() |
int |
getCurrentIndex() |
IMediaItem |
getCurrentMediaItem() |
IMediaItem |
getMediaItem(int index) |
IMediaItem |
getMediaItem(java.lang.String mediaId) |
int |
getRandomIndex() |
int |
indexOf(IMediaItem item)
Returns the index of the first occurrence of the specified mediaItem in this queue, or -1 if
this queue does not contain the mediaItem.
|
void |
init(IPlayer player)
Don't have to manually call, automatically initialized in the
APlayer.setMediaQueue(IMediaQueue) |
boolean |
isEmpty()
Returns true if this queue contains no
IMediaItem s. |
protected int |
itemLoopProcessing() |
protected void |
onCurrentQueueIndexUpdated(int index) |
protected void |
onItemRemoved(int index) |
protected void |
onQueueUpdated(java.util.List<? extends IMediaItem> newQueue) |
protected boolean |
onSkipQueueIndex(int index) |
IMediaItem |
remove(int index)
Removes the mediaItem at the specified position in this queue.
|
void |
removeListener(IMediaQueue.Listener listener) |
int |
seekIndexByMediaId(java.lang.String mediaId)
seek queue index by media id
|
void |
setAutoSkipMode(int autoSkipMode) |
boolean |
setCurrentIndex(int index)
set the current queue index
|
boolean |
setCurrentIndex(java.lang.String mediaId)
set the current queue index from the media Id
|
void |
setItemLoop(int loopMode)
*param loopMode can use
C.PARAM_ORIGINAL keeping the original values |
int |
size()
Returns the number of
IMediaItem s in this queue. |
boolean |
skipToAutoAssigned() |
boolean |
skipToIndex(int index)
Skip to the specify queue index media item.
|
boolean |
skipToIndexByIncrement(int increment)
skipToIndex(currentIndex + increment)
|
boolean |
skipToNext()
Skip to the next media item.
|
boolean |
skipToPrevious()
Skip to the previous media item.
|
boolean |
skipToRandom() |
void |
update(java.util.List<? extends IMediaItem> newQueue)
update this queue, with external use the same object, not independent maintenance
|
protected IPlayer player
private java.util.List<? extends IMediaItem> queue
protected int currentIndex
private java.util.Random mRandom
private int autoSkipMode
private int itemLoopMode
private int itemLoopedCount
private java.util.concurrent.CopyOnWriteArraySet<IMediaQueue.Listener> listeners
public void init(IPlayer player)
IMediaQueue
APlayer.setMediaQueue(IMediaQueue)
init
in interface IMediaQueue
public void destroy()
IMediaQueue
destroy
in interface IMediaQueue
public void update(java.util.List<? extends IMediaItem> newQueue)
IMediaQueue
update
in interface IMediaQueue
public boolean isEmpty()
IMediaQueue
IMediaItem
s.isEmpty
in interface IMediaQueue
IMediaItem
spublic int size()
IMediaQueue
IMediaItem
s in this queue. If this queue contains more than
Integer.MAX_VALUE IMediaItem
s, returns Integer.MAX_VALUE.size
in interface IMediaQueue
IMediaItem
s in this queuepublic int indexOf(IMediaItem item)
IMediaQueue
indexOf
in interface IMediaQueue
public IMediaItem remove(int index)
IMediaQueue
remove
in interface IMediaQueue
index
- the index of the mediaItem to be removedpublic void clear()
IMediaQueue
IMediaItem
s from this queue (optional operation). The queue will be
empty after this call returns.clear
in interface IMediaQueue
public IMediaItem getMediaItem(int index)
getMediaItem
in interface IMediaQueue
public IMediaItem getMediaItem(java.lang.String mediaId)
getMediaItem
in interface IMediaQueue
public IMediaItem getCurrentMediaItem()
getCurrentMediaItem
in interface IMediaQueue
public int getCurrentIndex()
getCurrentIndex
in interface IMediaQueue
public boolean setCurrentIndex(int index)
IMediaQueue
setCurrentIndex
in interface IMediaQueue
index
- queue indexpublic boolean setCurrentIndex(java.lang.String mediaId)
IMediaQueue
setCurrentIndex
in interface IMediaQueue
mediaId
- IMediaItem.getMediaId()
public int seekIndexByMediaId(java.lang.String mediaId)
IMediaQueue
seekIndexByMediaId
in interface IMediaQueue
mediaId
- IMediaItem.getMediaId()
public int getRandomIndex()
getRandomIndex
in interface IMediaQueue
public boolean skipToIndex(int index)
IMediaQueue
skipToIndex
in interface IMediaQueue
index
- queue indexpublic boolean skipToIndexByIncrement(int increment)
IMediaQueue
skipToIndexByIncrement
in interface IMediaQueue
IMediaQueue.skipToIndex(int)
public boolean skipToNext()
IMediaQueue
skipToIndexByIncrement(1)
skipToNext
in interface IMediaQueue
public boolean skipToPrevious()
IMediaQueue
skipToIndexByIncrement(-1)
skipToPrevious
in interface IMediaQueue
public boolean skipToRandom()
skipToRandom
in interface IMediaQueue
public int getAutoSkipMode()
getAutoSkipMode
in interface IMediaQueue
public void setAutoSkipMode(int autoSkipMode)
setAutoSkipMode
in interface IMediaQueue
public boolean skipToAutoAssigned()
skipToAutoAssigned
in interface IMediaQueue
public void setItemLoop(int loopMode)
IMediaQueue
*param loopMode can use C.PARAM_ORIGINAL
keeping the original values
*param
loopMode can use C.PARAM_UNSET
/C.PARAM_RESET
unset/reset values
setItemLoop
in interface IMediaQueue
protected int itemLoopProcessing()
public void addListener(IMediaQueue.Listener listener)
addListener
in interface IMediaQueue
public void removeListener(IMediaQueue.Listener listener)
removeListener
in interface IMediaQueue
protected void onQueueUpdated(java.util.List<? extends IMediaItem> newQueue)
protected void onItemRemoved(int index)
protected void onCurrentQueueIndexUpdated(int index)
protected boolean onSkipQueueIndex(int index)