public class PlaylistSubscriberStream extends AbstractClientStream implements IPlaylistSubscriberStream, IPlaylistSubscriberStreamStatistics
Modifier and Type | Class and Description |
---|---|
class |
PlaylistSubscriberStream.Notifier
Handles notifications in a separate thread.
|
Modifier and Type | Field and Description |
---|---|
protected int |
bufferCheckInterval
Interval in ms to check for buffer underruns in VOD streams.
|
protected long |
bytesSent
Number of bytes sent.
|
protected long |
creationTime
Timestamp this stream was created.
|
protected PlayEngine |
engine
Plays items back
|
protected static ScheduledThreadPoolExecutor |
executor
Executor that will be used to schedule stream playback to keep
the client buffer filled.
|
protected boolean |
random
Random mode state
|
protected boolean |
repeat
Repeat mode state
|
protected boolean |
rewind
Rewind mode state
|
protected int |
underrunTrigger
Number of pending messages at which a
NetStream.Play.InsufficientBW
message is generated for VOD streams. |
metaData, state
MODE_APPEND, MODE_LIVE, MODE_PUBLISH, MODE_READ, MODE_RECORD
Constructor and Description |
---|
PlaylistSubscriberStream()
Constructs a new PlaylistSubscriberStream.
|
Modifier and Type | Method and Description |
---|---|
void |
addItem(IPlayItem item)
Add an item to the list.
|
void |
addItem(IPlayItem item,
int index)
Add an item to specific index.
|
void |
close()
Close this stream.
|
long |
getBytesSent()
Return total number of bytes sent to the client from this stream.
|
long |
getCreationTime()
Returns timestamp at which the stream was created.
|
IPlayItem |
getCurrentItem()
Get currently playing item
|
int |
getCurrentItemIndex()
Get currently playing item index.
|
int |
getCurrentTimestamp()
Return the currently active timestamp inside the stream.
|
double |
getEstimatedBufferFill()
Return estimated fill ratio of the client buffer.
|
ScheduledThreadPoolExecutor |
getExecutor()
Return the executor to use.
|
IPlayItem |
getItem(int index)
Get the item according to the index.
|
int |
getItemSize()
Return number of items in list
|
IPlaylistSubscriberStreamStatistics |
getStatistics()
Return statistics about this stream.
|
boolean |
hasMoreItems()
Check if the playlist has more items after the currently
playing one.
|
boolean |
isPaused()
Check if the stream is currently paused.
|
boolean |
isRandom()
Whether items are randomly played.
|
boolean |
isRepeat()
Whether repeat playing an item.
|
boolean |
isRewind()
Whether rewind the list.
|
void |
nextItem()
Go for next item decided by controller logic.
|
void |
onChange(StreamState state,
Object... changed)
Handles a change occurring on the stream.
|
void |
pause(int position)
Pause at a position for current playing item.
|
void |
play()
Start playing.
|
void |
previousItem()
Go for the previous played item.
|
void |
receiveAudio(boolean receive)
Should the stream send audio to the client?
|
void |
receiveVideo(boolean receive)
Should the stream send video to the client?
|
void |
removeAllItems()
Remove all items.
|
void |
removeItem(int index)
Remove an item from list.
|
boolean |
replace(IPlayItem oldItem,
IPlayItem newItem)
Replaces an item in the list with another item.
|
void |
resume(int position)
Resume from a position for current playing item.
|
void |
seek(int position)
Seek into a position for current playing item.
|
void |
setBufferCheckInterval(int bufferCheckInterval)
Set interval to check for buffer underruns.
|
void |
setExecutor(ScheduledThreadPoolExecutor executor)
Set the executor to use.
|
void |
setItem(int index)
Set the current item for playing.
|
void |
setPlaylistController(IPlaylistController controller)
Set list controller.
|
void |
setRandom(boolean random)
Set whether items should be randomly played.
|
void |
setRepeat(boolean repeat)
Set whether repeat playing an item.
|
void |
setRewind(boolean rewind)
Set whether rewind the list.
|
void |
setUnderrunTrigger(int underrunTrigger)
Set maximum number of pending messages at which a
NetStream.Play.InsufficientBW message will be
generated for VOD streams |
void |
start()
Start this stream.
|
void |
stop()
Stop playing.
|
getBroadcastStreamPublishName, getClientBufferDuration, getConnection, getState, getStreamId, setBroadcastStreamPublishName, setClientBufferDuration, setConnection, setState, setStreamId
getCodecInfo, getMetaData, getName, getScope, getStreamAwareHandler, setCodecInfo, setName, setScope
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getState, setState
getBroadcastStreamPublishName, getClientBufferDuration, getConnection, getStreamId, setClientBufferDuration
getCodecInfo, getName, getScope
getClientBufferDuration
protected PlayEngine engine
protected boolean rewind
protected boolean random
protected boolean repeat
protected static ScheduledThreadPoolExecutor executor
protected int bufferCheckInterval
protected int underrunTrigger
NetStream.Play.InsufficientBW
message is generated for VOD streams.protected long creationTime
protected long bytesSent
public PlaylistSubscriberStream()
public void setExecutor(ScheduledThreadPoolExecutor executor)
executor
- the executorpublic ScheduledThreadPoolExecutor getExecutor()
getExecutor
in interface IPlaylistSubscriberStream
getExecutor
in interface ISubscriberStream
public void setBufferCheckInterval(int bufferCheckInterval)
0
to
disable.bufferCheckInterval
- interval in mspublic void setUnderrunTrigger(int underrunTrigger)
NetStream.Play.InsufficientBW
message will be
generated for VOD streamsunderrunTrigger
- the maximum number of pending messagespublic void play() throws IOException
play
in interface ISubscriberStream
IOException
- if an IO error occurred while starting to play the streampublic void pause(int position)
pause
in interface ISubscriberStream
position
- Position for pause in millisecond.public void resume(int position)
resume
in interface ISubscriberStream
position
- Position for resume in millisecond.public void stop()
stop
in interface IStream
stop
in interface ISubscriberStream
public void seek(int position) throws OperationNotSupportedException
seek
in interface ISubscriberStream
position
- Position for seek in millisecond.OperationNotSupportedException
- if the stream doesn't support seeking.public boolean isPaused()
isPaused
in interface ISubscriberStream
public void addItem(IPlayItem item)
public void addItem(IPlayItem item, int index)
public void removeItem(int index)
removeItem
in interface IPlaylist
index
- Index in listpublic void removeAllItems()
removeAllItems
in interface IPlaylist
public void previousItem()
previousItem
in interface IPlaylist
public boolean hasMoreItems()
hasMoreItems
in interface IPlaylist
true
if more items are available, false
otherwisepublic void nextItem()
public void setItem(int index)
public boolean isRandom()
public void setRandom(boolean random)
public boolean isRewind()
public void setRewind(boolean rewind)
public boolean isRepeat()
public void setRepeat(boolean repeat)
public void receiveVideo(boolean receive)
receiveVideo
in interface ISubscriberStream
public void receiveAudio(boolean receive)
receiveAudio
in interface ISubscriberStream
public void setPlaylistController(IPlaylistController controller)
setPlaylistController
in interface IPlaylist
controller
- Playlist controllerpublic int getItemSize()
getItemSize
in interface IPlaylist
public int getCurrentItemIndex()
getCurrentItemIndex
in interface IPlaylist
public IPlayItem getCurrentItem()
getCurrentItem
in interface IPlaylist
public IPlayItem getItem(int index)
public boolean replace(IPlayItem oldItem, IPlayItem newItem)
replace
in interface IPlaylistSubscriberStream
public void onChange(StreamState state, Object... changed)
onChange
in interface IPlaylistSubscriberStream
onChange
in interface ISubscriberStream
state
- stream state that we are changing to or notifying ofchanged
- changed itemspublic IPlaylistSubscriberStreamStatistics getStatistics()
getStatistics
in interface IPlaylistSubscriberStream
public long getCreationTime()
getCreationTime
in interface IStatisticsBase
getCreationTime
in interface IStream
getCreationTime
in class AbstractStream
public int getCurrentTimestamp()
getCurrentTimestamp
in interface IStreamStatistics
public long getBytesSent()
getBytesSent
in interface IPlaylistSubscriberStreamStatistics
public double getEstimatedBufferFill()
getEstimatedBufferFill
in interface IPlaylistSubscriberStreamStatistics
Copyright © 2006-2012 The Red5 Project