Package org.red5.server.adapter
Class MultiThreadedApplicationAdapter
java.lang.Object
org.red5.server.adapter.AbstractScopeAdapter
org.red5.server.adapter.StatefulScopeWrappingAdapter
org.red5.server.adapter.MultiThreadedApplicationAdapter
- All Implemented Interfaces:
IEventHandler
,IAttributeStore
,ISchedulingService
,IScopeAware
,IScopeHandler
,IScopeService
,IBroadcastStreamService
,IOnDemandStreamService
,IStreamSecurityService
,ISubscriberStreamService
,IStreamAwareScopeHandler
,ApplicationMXBean
,AttributeStoreMXBean
- Direct Known Subclasses:
AdminApplication
,AntMediaApplicationAdapter
,ApplicationAdapter
public class MultiThreadedApplicationAdapter
extends StatefulScopeWrappingAdapter
implements IBroadcastStreamService, IOnDemandStreamService, ISubscriberStreamService, ISchedulingService, IStreamSecurityService, IStreamAwareScopeHandler, ApplicationMXBean
ApplicationAdapter class serves as a base class for your Red5 applications.
It provides methods to work with SharedObjects and streams, as well as
connections and scheduling services.
ApplicationAdapter is an application level IScope. To handle streaming processes in your application you should implement
Application adapter provides you with useful event handlers that can be used to intercept streams, authorize users, etc. Also, all methods added in subclasses can be called from client side with NetConnection.call method. Unlike to Flash Media server which requires you to keep methods on Client object at server side, Red5 offers much more convenient way to add methods
EXAMPLE:
This method added to ApplicationAdapter subclass can be called from client side with the following code:
If you want to build a server-side framework this is a place to start and wrap it around ApplicationAdapter subclass.
ApplicationAdapter is an application level IScope. To handle streaming processes in your application you should implement
IStreamAwareScopeHandler
interface and implement handling methods.
Application adapter provides you with useful event handlers that can be used to intercept streams, authorize users, etc. Also, all methods added in subclasses can be called from client side with NetConnection.call method. Unlike to Flash Media server which requires you to keep methods on Client object at server side, Red5 offers much more convenient way to add methods
EXAMPLE:
public List<String> getLiveStreams() {
// Implementation goes here, say, use Red5 object to obtain scope and all it's streams
}
This method added to ApplicationAdapter subclass can be called from client side with the following code:
var nc:NetConnection = new NetConnection();
nc.connect(...);
nc.call("getLiveStreams", resultHandlerObj);
If you want to build a server-side framework this is a place to start and wrap it around ApplicationAdapter subclass.
- Author:
- The Red5 Project, Joachim Bauch (jojo@struktur.de), Paul Gregoire (mondain@gmail.com), Michael Klishin
-
Field Summary
Modifier and TypeFieldDescriptionprivate CopyOnWriteArraySet<IApplication>
List of application listeners.protected org.slf4j.Logger
Logger objectprotected static org.slf4j.Logger
private Set<IStreamPlaybackSecurity>
List of handlers that protect stream playback.private Set<IStreamPublishSecurity>
List of handlers that protect stream publishing.protected ISchedulingService
Scheduling service.Fields inherited from class org.red5.server.adapter.StatefulScopeWrappingAdapter
plugins, scope
Fields inherited from interface org.red5.server.api.service.IBroadcastStreamService
BROADCAST_STREAM_SERVICE
Fields inherited from interface org.red5.server.api.service.IOnDemandStreamService
BEAN_NAME
Fields inherited from interface org.red5.server.api.scheduling.ISchedulingService
BEAN_NAME
Fields inherited from interface org.red5.server.api.service.IStreamSecurityService
BEAN_NAME
Fields inherited from interface org.red5.server.api.service.ISubscriberStreamService
BEAN_NAME
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addListener
(IApplication listener) Register a listener that will get notified about application events.addScheduledJob
(int interval, IScheduledJob job) Wrapper around ISchedulingService, adds a scheduled job to be run periodically.addScheduledJobAfterDelay
(int interval, IScheduledJob job, int delay) Adds a scheduled job which starts after the specified delay period and fires periodically.addScheduledOnceJob
(long timeDelta, IScheduledJob job) Adds a scheduled job that's gonna be executed once.addScheduledOnceJob
(Date date, IScheduledJob job) Adds a scheduled job that's gonna be executed once on given date.boolean
appConnect
(IConnection conn, Object[] params) Handler method.void
appDisconnect
(IConnection conn) Handler method.boolean
void
Handler method.boolean
Called once on scope (that is, application or application room) start.void
Handler method.boolean
connect
(IConnection conn) Returns connection result for given scope and parameters.boolean
connect
(IConnection conn, IScope scope, Object[] params) Returns connection result for given scope and parameters.void
disconnect
(IConnection conn, IScope scope) Returns disconnection result for given scope and parameters.void
Notification method that is sent by FME just before publishing starts.void
FCSubscribe
(String streamName) Notification method that is sent by some clients just before playback starts.void
Notification method that is sent by FME when publishing of a stream ends.void
FCUnpublish
(String streamName) Notification method that is sent by FME when publishing of a stream ends.getBroadcastStream
(IScope scope, String name) Get a broadcast stream by namegetBroadcastStreamNames
(IScope scope) Returns list of stream names broadcasted in scope.long
Deprecated.int
Deprecated.Return handlers that get notified about application events.getOnDemandStream
(IScope scope, String name) Returns VOD stream with given name from specified scope.Returns list of scheduled job namesdouble
getStreamLength
(String name) Returns stream length.Get handlers that protect stream plaback.Get handlers that protect stream publishing.getSubscriberStream
(IScope scope, String name) Returns subscriber stream with given name from specified scope.boolean
handleEvent
(IEvent event) Handle an event.boolean
hasBroadcastStream
(IScope scope, String name) Does the scope have a broadcast stream registered with a given nameboolean
hasOnDemandStream
(IScope scope, String name) Check whether scope has VOD stream with given name or notboolean
Adds client to scope.void
Disconnects client from scope.void
Try to measure bandwidth of current connection.void
measureBandwidth
(IConnection conn) Try to measure bandwidth of given connection.void
pauseScheduledJob
(String name) Pauses a scheduled jobvoid
Add handler that protects stream playback.void
Add handler that protects stream publishing.protected boolean
Reject the currently connecting client without a special error message.protected boolean
rejectClient
(Object reason) Reject the currently connecting client with an error message.void
removeListener
(IApplication listener) Unregister handler that will not get notified about application events any longer.void
removeScheduledJob
(String name) Removes scheduled job from scheduling service listvoid
resumeScheduledJob
(String name) Resumes a scheduled jobboolean
roomConnect
(IConnection conn, Object[] params) Handler method.void
roomDisconnect
(IConnection conn) Handler method.boolean
void
Handler method.boolean
Handler method.void
Handler method.void
setClientTTL
(int clientTTL) Deprecated.void
setGhostConnsCleanupPeriod
(int ghostConnsCleanupPeriod) Deprecated.boolean
Starts scope.void
startTransmit
(Boolean bool, int num) Start transmission notification from Flash Player 11.1+.void
Stops scope handling (that is, stops application if given scope is app level scope and stops room handling if given scope has lower scope level).void
Stop transmission notification from Flash Player 11.1+.void
stopTransmit
(Boolean bool, int num) Stop transmission notification from Flash Player 11.1+.void
streamBroadcastClose
(IBroadcastStream stream) Notification that a broadcasting stream is closing.void
streamBroadcastStart
(IBroadcastStream stream) Notified when a broadcaster starts.void
streamPlayItemPause
(ISubscriberStream stream, IPlayItem item, int position) Notified when a play item pauses.void
streamPlayItemPlay
(ISubscriberStream stream, IPlayItem item, boolean isLive) Notified when a play item plays.void
streamPlayItemResume
(ISubscriberStream stream, IPlayItem item, int position) Notified when a play item resumes.void
streamPlayItemSeek
(ISubscriberStream stream, IPlayItem item, int position) Notified when a play item seeks.void
streamPlayItemStop
(ISubscriberStream stream, IPlayItem item) Notified when a play item stops.void
streamPublishStart
(IBroadcastStream stream) A broadcast stream starts being published.void
streamRecordStart
(IBroadcastStream stream) A broadcast stream starts being recorded.void
streamRecordStop
(IBroadcastStream stream) A broadcast stream stops being recorded.void
Notified when a subscriber closes.void
Notified when a subscriber starts.void
Remove handler that protects stream playback.void
Remove handler that protects stream publishing.Methods inherited from class org.red5.server.adapter.StatefulScopeWrappingAdapter
createChildScope, getAttribute, getAttribute, getAttributeNames, getAttributes, getChildScope, getChildScopeNames, getClients, getConnections, getContext, getDepth, getName, getParent, getPath, getPlugins, getResource, getResources, getScope, hasAttribute, hasChildScope, hasParent, lookupConnections, removeAttribute, removeAttributes, setAttribute, setAttributes, setAttributes, setPlugins, setScope, size
Methods inherited from class org.red5.server.adapter.AbstractScopeAdapter
addChildScope, checkBandwidth, checkBandwidthUp, removeChildScope, serviceCall, setCanCallService, setCanConnect, setCanStart, setJoin
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.red5.server.api.scope.IScopeHandler
addChildScope, removeChildScope, serviceCall
-
Field Details
-
log
protected org.slf4j.Logger logLogger object -
logger
protected static org.slf4j.Logger logger -
listeners
List of application listeners. -
schedulingService
Scheduling service. Uses Quartz. Adds and removes scheduled jobs. -
publishSecurity
List of handlers that protect stream publishing. -
playbackSecurity
List of handlers that protect stream playback.
-
-
Constructor Details
-
MultiThreadedApplicationAdapter
public MultiThreadedApplicationAdapter()
-
-
Method Details
-
addListener
Register a listener that will get notified about application events.- Parameters:
listener
- object to register
-
removeListener
Unregister handler that will not get notified about application events any longer.- Parameters:
listener
- object to unregister
-
getListeners
Return handlers that get notified about application events.- Returns:
- list of handlers
-
registerStreamPublishSecurity
Add handler that protects stream publishing.- Specified by:
registerStreamPublishSecurity
in interfaceIStreamSecurityService
- Parameters:
handler
- Handler to add.
-
unregisterStreamPublishSecurity
Remove handler that protects stream publishing.- Specified by:
unregisterStreamPublishSecurity
in interfaceIStreamSecurityService
- Parameters:
handler
- Handler to remove.
-
getStreamPublishSecurity
Get handlers that protect stream publishing.- Specified by:
getStreamPublishSecurity
in interfaceIStreamSecurityService
- Returns:
- list of handlers
-
registerStreamPlaybackSecurity
Add handler that protects stream playback.- Specified by:
registerStreamPlaybackSecurity
in interfaceIStreamSecurityService
- Parameters:
handler
- Handler to add.
-
unregisterStreamPlaybackSecurity
Remove handler that protects stream playback.- Specified by:
unregisterStreamPlaybackSecurity
in interfaceIStreamSecurityService
- Parameters:
handler
- Handler to remove.
-
getStreamPlaybackSecurity
Get handlers that protect stream plaback.- Specified by:
getStreamPlaybackSecurity
in interfaceIStreamSecurityService
- Returns:
- list of handlers
-
rejectClient
Reject the currently connecting client without a special error message. This method throwsClientRejectedException
exception.- Returns:
- never returns
- Throws:
ClientRejectedException
- Thrown when client connection must be rejected by application logic
-
rejectClient
Reject the currently connecting client with an error message. The passed object will be available as "application" property of the information object that is returned to the caller.- Parameters:
reason
- Additional error message to return to client-side Flex/Flash application- Returns:
- never returns
- Throws:
ClientRejectedException
- Thrown when client connection must be rejected by application logic
-
connect
Returns connection result for given scope and parameters. Whether the scope is room or app level scope, this method distinguishes it and acts accordingly. You overrideappConnect(IConnection, Object[])
orroomConnect(IConnection, Object[])
in your application to make it act the way you want.- Parameters:
conn
- Connection object- Returns:
true
if connect is successful,false
otherwise
-
connect
Returns connection result for given scope and parameters. Whether the scope is room or app level scope, this method distinguishes it and acts accordingly. You overrideappConnect(IConnection, Object[])
orroomConnect(IConnection, Object[])
in your application to make it act the way you want.- Specified by:
connect
in interfaceIScopeHandler
- Overrides:
connect
in classAbstractScopeAdapter
- Parameters:
conn
- Connection objectscope
- Scopeparams
- List of params passed to connection handler- Returns:
true
if connect is successful,false
otherwise
-
start
Starts scope. Scope can be both application or room level.- Specified by:
start
in interfaceIScopeHandler
- Overrides:
start
in classAbstractScopeAdapter
- Parameters:
scope
- Scope object- Returns:
true
if scope can be started,false
otherwise. SeeAbstractScopeAdapter.start(IScope)
for details.
-
disconnect
Returns disconnection result for given scope and parameters. Whether the scope is room or app level scope, this method distinguishes it and acts accordingly.- Specified by:
disconnect
in interfaceIScopeHandler
- Overrides:
disconnect
in classAbstractScopeAdapter
- Parameters:
conn
- Connection objectscope
- Scope
-
stop
Stops scope handling (that is, stops application if given scope is app level scope and stops room handling if given scope has lower scope level). This method callsappStop(IScope)
orroomStop(IScope)
handlers respectively.- Specified by:
stop
in interfaceIScopeHandler
- Overrides:
stop
in classAbstractScopeAdapter
- Parameters:
scope
- Scope to stop
-
join
Adds client to scope. Scope can be both application or room. Can be applied to both application scope and scopes of lower level. This method callsappJoin(IClient, IScope)
orroomJoin(IClient, IScope)
handlers respectively.- Specified by:
join
in interfaceIScopeHandler
- Overrides:
join
in classAbstractScopeAdapter
- Parameters:
client
- Client objectscope
- Scope object- Returns:
true
to allow,false
to deny connection
-
leave
Disconnects client from scope. Can be applied to both application scope and scopes of lower level. This method callsappLeave(IClient, IScope)
orroomLeave(IClient, IScope)
handlers respectively.- Specified by:
leave
in interfaceIScopeHandler
- Overrides:
leave
in classAbstractScopeAdapter
- Parameters:
client
- Client objectscope
- Scope object
-
appStart
Called once on scope (that is, application or application room) start. You overrideappStart(IScope)
orroomStart(IScope)
in your application to make it act the way you want.- Specified by:
appStart
in interfaceApplicationMXBean
- Parameters:
app
- Application scope object- Returns:
true
if scope can be started,false
otherwise
-
appStop
Handler method. Called when application is stopped.- Specified by:
appStop
in interfaceApplicationMXBean
- Parameters:
app
- Scope object
-
roomStart
Handler method. Called when room scope is started.- Specified by:
roomStart
in interfaceApplicationMXBean
- Parameters:
room
- Room scope- Returns:
- Boolean value
-
roomStop
Handler method. Called when room scope is stopped.- Specified by:
roomStop
in interfaceApplicationMXBean
- Parameters:
room
- Room scope.
-
appConnect
Handler method. Called every time new client connects (that is, new IConnection object is created after call from a SWF movie) to the application.
You override this method to pass additional data from client to server application usingNetConnection.connect
method.
EXAMPLE:
In this simple example we pass user's skin of choice identifier from client to the server.
Client-side:
NetConnection.connect("rtmp://localhost/killerred5app", "silver");
Server-side:
if (params.length > 0) log.debug("Theme selected: {}", params[0]);
- Specified by:
appConnect
in interfaceApplicationMXBean
- Parameters:
conn
- Connection objectparams
- List of parameters after connection URL passed toNetConnection.connect
method.- Returns:
- Boolean value
-
roomConnect
Handler method. Called every time new client connects (that is, new IConnection object is created after call from a SWF movie) to the application. You override this method to pass additional data from client to server application usingNetConnection.connect
method. SeeappConnect(IConnection, Object[])
for code example.- Specified by:
roomConnect
in interfaceApplicationMXBean
- Parameters:
conn
- Connection objectparams
- List of params passed to room scope- Returns:
- Boolean value
-
appDisconnect
Handler method. Called every time client disconnects from the application.- Specified by:
appDisconnect
in interfaceApplicationMXBean
- Parameters:
conn
- Disconnected connection object
-
roomDisconnect
Handler method. Called every time client disconnects from the room.- Specified by:
roomDisconnect
in interfaceApplicationMXBean
- Parameters:
conn
- Disconnected connection object
-
appJoin
- Specified by:
appJoin
in interfaceApplicationMXBean
-
appLeave
Handler method. Called every time client leaves application scope.- Specified by:
appLeave
in interfaceApplicationMXBean
- Parameters:
client
- Client object that leftapp
- Application scope
-
roomJoin
- Specified by:
roomJoin
in interfaceApplicationMXBean
-
roomLeave
Handler method. Called every time client leaves room scope.- Specified by:
roomLeave
in interfaceApplicationMXBean
- Parameters:
client
- Disconnected client objectroom
- Room scope
-
measureBandwidth
public void measureBandwidth()Try to measure bandwidth of current connection. This is required for some FLV player to work because they require the "onBWDone" method to be called on the connection. -
measureBandwidth
Try to measure bandwidth of given connection. This is required for some FLV player to work because they require the "onBWDone" method to be called on the connection.- Parameters:
conn
- the connection to measure the bandwidth for
-
hasBroadcastStream
Does the scope have a broadcast stream registered with a given name- Specified by:
hasBroadcastStream
in interfaceIBroadcastStreamService
- Parameters:
scope
- the scope to check for the streamname
- name of the broadcast- Returns:
- true is a stream exists, otherwise false
-
getBroadcastStream
Get a broadcast stream by name- Specified by:
getBroadcastStream
in interfaceIBroadcastStreamService
- Parameters:
scope
- the scope to return the stream fromname
- the name of the broadcast- Returns:
- broadcast stream object
-
getBroadcastStreamNames
Returns list of stream names broadcasted in scope. Broadcast stream name is somewhat different from server stream name. Server stream name is just an ID assigned by Red5 to every created stream. Broadcast stream name is the name that is being used to subscribe to the stream at client side, that is, inNetStream.play
call.- Specified by:
getBroadcastStreamNames
in interfaceIBroadcastStreamService
- Parameters:
scope
- Scope to retrieve broadcasted stream names- Returns:
- List of broadcasted stream names.
-
hasOnDemandStream
Check whether scope has VOD stream with given name or not- Specified by:
hasOnDemandStream
in interfaceIOnDemandStreamService
- Parameters:
scope
- Scopename
- VOD stream name- Returns:
- true if scope has VOD stream with given name, false otherwise.
-
getOnDemandStream
Returns VOD stream with given name from specified scope.- Specified by:
getOnDemandStream
in interfaceIOnDemandStreamService
- Parameters:
scope
- Scope objectname
- VOD stream name- Returns:
- IOnDemandStream object that represents stream that can be played
on demand, seekable and so forth. See
IOnDemandStream
for details.
-
getSubscriberStream
Returns subscriber stream with given name from specified scope. Subscriber stream is a stream that clients can subscribe to.- Specified by:
getSubscriberStream
in interfaceISubscriberStreamService
- Parameters:
scope
- Scopename
- Stream name- Returns:
- ISubscriberStream object
-
addScheduledJob
Wrapper around ISchedulingService, adds a scheduled job to be run periodically. We store this service in the scope as it can be shared across all rooms of the applications.- Specified by:
addScheduledJob
in interfaceISchedulingService
- Parameters:
interval
- Time interval to run the scheduled jobjob
- Scheduled job object- Returns:
- Name of the scheduled job
-
addScheduledOnceJob
Adds a scheduled job that's gonna be executed once. Please note that the jobs are not saved if Red5 is restarted in the meantime.- Specified by:
addScheduledOnceJob
in interfaceISchedulingService
- Parameters:
timeDelta
- Time offset in milliseconds from the current date when given job should be runjob
- Scheduled job object- Returns:
- Name of the scheduled job
-
addScheduledOnceJob
Adds a scheduled job that's gonna be executed once on given date. Please note that the jobs are not saved if Red5 is restarted in the meantime.- Specified by:
addScheduledOnceJob
in interfaceISchedulingService
- Parameters:
date
- When to run scheduled jobjob
- Scheduled job object- Returns:
- Name of the scheduled job
-
addScheduledJobAfterDelay
Adds a scheduled job which starts after the specified delay period and fires periodically.- Specified by:
addScheduledJobAfterDelay
in interfaceISchedulingService
- Parameters:
interval
- time in milliseconds between two notifications of the jobjob
- the job to trigger periodicallydelay
- time in milliseconds to pass before first execution.- Returns:
- the name of the scheduled job
-
pauseScheduledJob
Pauses a scheduled job- Specified by:
pauseScheduledJob
in interfaceISchedulingService
- Parameters:
name
- Scheduled job name
-
resumeScheduledJob
Resumes a scheduled job- Specified by:
resumeScheduledJob
in interfaceISchedulingService
- Parameters:
name
- Scheduled job name
-
removeScheduledJob
Removes scheduled job from scheduling service list- Specified by:
removeScheduledJob
in interfaceISchedulingService
- Parameters:
name
- Scheduled job name
-
getScheduledJobNames
Returns list of scheduled job names- Specified by:
getScheduledJobNames
in interfaceISchedulingService
- Returns:
- List of scheduled job names as list of Strings.
-
getStreamLength
Returns stream length. This is a hook so it may be removed.- Parameters:
name
- Stream name- Returns:
- Stream length in seconds (?)
-
getClientTTL
Deprecated.Client time to live is max allowed connection ping return time in seconds- Returns:
- TTL value used in seconds
-
setClientTTL
Deprecated.Client time to live is max allowed connection ping return time in seconds- Parameters:
clientTTL
- New TTL value in seconds
-
getGhostConnsCleanupPeriod
Deprecated.Return period of ghost connections cleanup task call- Returns:
- Ghost connections cleanup period
-
setGhostConnsCleanupPeriod
Deprecated.Set new ghost connections cleanup period- Parameters:
ghostConnsCleanupPeriod
- New ghost connections cleanup period
-
startTransmit
Start transmission notification from Flash Player 11.1+. This command asks the server to transmit more data because the buffer is running low. http://help.adobe.com/en_US/flashmediaserver/devguide/WSd391de4d9c7bd609-569139412a3743e78e-8000.html- Parameters:
bool
- booleannum
- number
-
stopTransmit
public void stopTransmit()Stop transmission notification from Flash Player 11.1+. This command asks the server to suspend transmission until the client sends a startTransmit event because there is enough data in the buffer. -
stopTransmit
Stop transmission notification from Flash Player 11.1+. This command asks the server to suspend transmission until the client sends a startTransmit event because there is enough data in the buffer.- Parameters:
bool
- booleannum
- number
-
FCPublish
Notification method that is sent by FME just before publishing starts.- Parameters:
streamName
- Name of stream that is about to be published.
-
FCUnpublish
public void FCUnpublish()Notification method that is sent by FME when publishing of a stream ends. -
FCUnpublish
Notification method that is sent by FME when publishing of a stream ends.- Parameters:
streamName
- Name of stream that is about to be un-published.
-
FCSubscribe
Notification method that is sent by some clients just before playback starts.- Parameters:
streamName
- Name of stream that is about to be played.
-
streamBroadcastClose
Notification that a broadcasting stream is closing.- Specified by:
streamBroadcastClose
in interfaceIStreamAwareScopeHandler
- Parameters:
stream
- stream
-
streamBroadcastStart
Description copied from interface:IStreamAwareScopeHandler
Notified when a broadcaster starts.- Specified by:
streamBroadcastStart
in interfaceIStreamAwareScopeHandler
- Parameters:
stream
- stream
-
streamPlayItemPlay
Description copied from interface:IStreamAwareScopeHandler
Notified when a play item plays.- Specified by:
streamPlayItemPlay
in interfaceIStreamAwareScopeHandler
- Parameters:
stream
- streamitem
- itemisLive
- true if live
-
streamPlayItemStop
Description copied from interface:IStreamAwareScopeHandler
Notified when a play item stops.- Specified by:
streamPlayItemStop
in interfaceIStreamAwareScopeHandler
- Parameters:
stream
- streamitem
- item
-
streamPlayItemPause
Description copied from interface:IStreamAwareScopeHandler
Notified when a play item pauses.- Specified by:
streamPlayItemPause
in interfaceIStreamAwareScopeHandler
- Parameters:
stream
- streamitem
- itemposition
- position
-
streamPlayItemResume
Description copied from interface:IStreamAwareScopeHandler
Notified when a play item resumes.- Specified by:
streamPlayItemResume
in interfaceIStreamAwareScopeHandler
- Parameters:
stream
- streamitem
- itemposition
- position
-
streamPlayItemSeek
Description copied from interface:IStreamAwareScopeHandler
Notified when a play item seeks.- Specified by:
streamPlayItemSeek
in interfaceIStreamAwareScopeHandler
- Parameters:
stream
- streamitem
- itemposition
- position
-
streamPublishStart
Description copied from interface:IStreamAwareScopeHandler
A broadcast stream starts being published. This will be called when the first video packet has been received.- Specified by:
streamPublishStart
in interfaceIStreamAwareScopeHandler
- Parameters:
stream
- stream
-
streamRecordStart
Description copied from interface:IStreamAwareScopeHandler
A broadcast stream starts being recorded. This will be called when the first video packet has been received.- Specified by:
streamRecordStart
in interfaceIStreamAwareScopeHandler
- Parameters:
stream
- stream
-
streamRecordStop
Description copied from interface:IStreamAwareScopeHandler
A broadcast stream stops being recorded. This will be called when the record-stop notification is sent to the Flash client.- Specified by:
streamRecordStop
in interfaceIStreamAwareScopeHandler
- Parameters:
stream
- stream
-
streamSubscriberClose
Description copied from interface:IStreamAwareScopeHandler
Notified when a subscriber closes.- Specified by:
streamSubscriberClose
in interfaceIStreamAwareScopeHandler
- Parameters:
stream
- stream
-
streamSubscriberStart
Description copied from interface:IStreamAwareScopeHandler
Notified when a subscriber starts.- Specified by:
streamSubscriberStart
in interfaceIStreamAwareScopeHandler
- Parameters:
stream
- stream
-
handleEvent
Description copied from class:AbstractScopeAdapter
Handle an event.- Specified by:
handleEvent
in interfaceIEventHandler
- Overrides:
handleEvent
in classAbstractScopeAdapter
- Parameters:
event
- to handle- Returns:
- true if event was handled, false if it should bubble
-