com.smaxe.app.uv.agent
Class RtmpClientScript

java.lang.Object
  extended by com.smaxe.app.uv.agent.RtmpClientScript
Direct Known Subclasses:
DummyRtmpClientScript, EmptyScript, PlayStreamScript, PublishStreamScript

public class RtmpClientScript
extends java.lang.Object

RtmpClientScript - RTMP client script.

Author:
Andrei Sochirca

Field Summary
static java.lang.String PUBLISH_MODE_APPEND
          PUBLISH_MODE_APPEND - "append".
static java.lang.String PUBLISH_MODE_LIVE
          PUBLISH_MODE_LIVE - "live".
static java.lang.String PUBLISH_MODE_RECORD
          PUBLISH_MODE_RECORD - "record".
 
Constructor Summary
RtmpClientScript()
          Constructor.
 
Method Summary
 void call(java.lang.Object cid, java.lang.String method, java.lang.Object... args)
          Calls server method with args.
 void closeSharedObject(java.lang.String name)
          Disconnects from the shared-object.
 void closeStream(java.lang.String stream)
          Closes the stream.
 void connectSharedObject(java.lang.String name)
          Connects to the non-persisntent shared-object.
 void connectSharedObject(java.lang.String name, boolean persistent)
          Connects to the shared-object.
 void disconnect()
          Disconnects from the server.
 int getClientId()
          Returns client id.
 java.lang.String[] getPlayingStreams()
          Returns playing streams
 java.lang.String[] getPublishedStreams()
          Returns published streams
 java.util.Map<java.lang.String,java.lang.Object> getSharedObjectData(java.lang.String name)
          Returns shared-object data.
 java.lang.String[] getSharedObjects()
          Returns connected shared objects.
 ILogger logger()
          Returns logger.
 void onBWDone()
          'onBWDone' invoked by FMS server.
 void onBWDone(java.lang.Object... args)
          'onBWDone' invoked by FMS server.
 void onCallException(java.lang.Object cid, java.lang.String method, java.lang.Object[] args, java.lang.Exception e, java.lang.Object details)
          Notifies about received server#method(args) exception.
 void onCallResult(java.lang.Object cid, java.lang.String method, java.lang.Object[] args, java.lang.Object result)
          Notifies about received server#method(args) result.
 void onConnect(java.lang.String code, java.util.Map<java.lang.String,java.lang.Object> info)
          Notifies about connection to the server.
 void onDisconnect(java.lang.String code, java.util.Map<java.lang.String,java.lang.Object> info)
          Notifies about disconnection from the server.
 void onPlayAction(java.lang.String stream, java.lang.String action, java.lang.Object... args)
          Notifies about playing stream action.
 void onPlayStart(java.lang.String stream)
          Notifies about stream playback start.
 void onPlayStatus(java.lang.String stream, java.lang.String code, java.util.Map<java.lang.String,java.lang.Object> info)
          Notifies about playing stream status.
 void onPlayStop(java.lang.String stream, MediaStreamInfo info)
          Notifies about stream playback stop.
 void onPublishStart(java.lang.String stream)
          Notifies about stream publish start.
 void onPublishStatus(java.lang.String stream, java.lang.String code, java.util.Map<java.lang.String,java.lang.Object> info)
          Notifies about published stream status.
 void onPublishStop(java.lang.String stream)
          Notifies about stream publish stop.
 void onSharedObjectAction(java.lang.String name, java.lang.String action, java.lang.Object... args)
          Notifies about shared object action.
 void onSharedObjectChange(java.lang.String name, java.lang.String attribute, java.lang.Object oldValue, java.lang.Object newValue)
          Notifies about shared object attribute change.
 void onSharedObjectConnect(java.lang.String name)
          Notifies about connection to the shared object.
 void onSharedObjectDisconnect(java.lang.String name)
          Notifies about disconnection from the shared object.
 void onSharedObjectStatus(java.lang.String name, java.lang.String status, java.lang.Object description)
          Notifies about shared object status.
 java.lang.Object[] onStart()
          Invoked before user connects to the server to get connection arguments.
 void onStatus(java.lang.String code, java.util.Map<java.lang.String,java.lang.Object> info)
          Notifies about connection status.
 void onTime(long time)
          Invoked after time milliseconds elapsed since connection established.
 void pausePlayingStream(java.lang.String stream)
          Pauses the stream.
 void play(java.lang.Object... args)
          Plays the stream.
 java.util.Map<java.lang.String,java.lang.Object> properties()
          Returns properties associated with the script.
 void publish(java.lang.String stream, long duration, java.lang.String mode)
          Publishes the stream for the duration time.
 void receivePlayingStreamAudio(java.lang.String stream, boolean receive)
          Sets 'receive audio' flag.
 void receivePlayingStreamVideo(java.lang.String stream, boolean receive)
          Sets 'receive video' flag.
 void resumePlayingStream(java.lang.String stream)
          Resumes the stream.
 void seekPlayingStreamPosition(java.lang.String stream, long offset)
          Seeks offset position in the stream.
 void sendPublishedStreamAction(java.lang.String stream, java.lang.String action, java.lang.Object... args)
          Sends published-stream action.
 void sendSharedObjectAction(java.lang.String name, java.lang.String action, java.lang.Object... args)
          Sends shared-object action.
 void setClient(RtmpClient client)
          Sets client.
 void setLogger(ILogger logger)
          Sets logger.
 void setProperties(java.util.Map<java.lang.String,java.lang.Object> properties)
          Sets properties.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PUBLISH_MODE_APPEND

public static final java.lang.String PUBLISH_MODE_APPEND
PUBLISH_MODE_APPEND - "append".

See Also:
Constant Field Values

PUBLISH_MODE_LIVE

public static final java.lang.String PUBLISH_MODE_LIVE
PUBLISH_MODE_LIVE - "live".

See Also:
Constant Field Values

PUBLISH_MODE_RECORD

public static final java.lang.String PUBLISH_MODE_RECORD
PUBLISH_MODE_RECORD - "record".

See Also:
Constant Field Values
Constructor Detail

RtmpClientScript

public RtmpClientScript()
Constructor.

Method Detail

setLogger

public final void setLogger(ILogger logger)
Sets logger.

Note: This method is used by framework internally.

Parameters:
logger - logger

setProperties

public final void setProperties(java.util.Map<java.lang.String,java.lang.Object> properties)
Sets properties.

Note: This method is used by framework internally.

Parameters:
properties -

setClient

public final void setClient(RtmpClient client)
Sets client.

Note: This method is used by framework internally.

Parameters:
client -

getClientId

public final int getClientId()
Returns client id.

Returns:
client id

logger

public final ILogger logger()
Returns logger.

Returns:
logger

properties

public final java.util.Map<java.lang.String,java.lang.Object> properties()
Returns properties associated with the script.

Returns:
script properties

call

public final void call(java.lang.Object cid,
                       java.lang.String method,
                       java.lang.Object... args)
Calls server method with args.

Parameters:
cid - call identifier
method - method name
args - arguments

getPlayingStreams

public final java.lang.String[] getPlayingStreams()
Returns playing streams

Returns:
playing streams

play

public final void play(java.lang.Object... args)
Plays the stream.

Parameters:
args - stream to play

pausePlayingStream

public final void pausePlayingStream(java.lang.String stream)
Pauses the stream.

Parameters:
stream - stream name

resumePlayingStream

public final void resumePlayingStream(java.lang.String stream)
Resumes the stream.

Parameters:
stream - stream name

seekPlayingStreamPosition

public final void seekPlayingStreamPosition(java.lang.String stream,
                                            long offset)
Seeks offset position in the stream.

Parameters:
stream - stream name
offset - offset

receivePlayingStreamAudio

public final void receivePlayingStreamAudio(java.lang.String stream,
                                            boolean receive)
Sets 'receive audio' flag.

Parameters:
stream - stream name
receive - flag

receivePlayingStreamVideo

public void receivePlayingStreamVideo(java.lang.String stream,
                                      boolean receive)
Sets 'receive video' flag.

Parameters:
stream - stream name
receive - flag

getPublishedStreams

public final java.lang.String[] getPublishedStreams()
Returns published streams

Returns:
published streams

publish

public final void publish(java.lang.String stream,
                          long duration,
                          java.lang.String mode)
Publishes the stream for the duration time.

Parameters:
stream - stream to publish
duration - published stream duration (in milliseconds)
mode - one of PUBLISH_MODE_* constants

sendPublishedStreamAction

public final void sendPublishedStreamAction(java.lang.String stream,
                                            java.lang.String action,
                                            java.lang.Object... args)
Sends published-stream action.

Parameters:
stream - published stream name
action - action
args - action arguments

closeStream

public final void closeStream(java.lang.String stream)
Closes the stream.

Parameters:
stream -

getSharedObjects

public final java.lang.String[] getSharedObjects()
Returns connected shared objects.

Returns:
connected shared objects

connectSharedObject

public final void connectSharedObject(java.lang.String name)
Connects to the non-persisntent shared-object.

Note:
- Equivalent to connectSharedObject(String, boolean) with persistent=false parameter.

Parameters:
name - shared object name

connectSharedObject

public final void connectSharedObject(java.lang.String name,
                                      boolean persistent)
Connects to the shared-object.

Parameters:
name - shared object name
persistent -

getSharedObjectData

public final java.util.Map<java.lang.String,java.lang.Object> getSharedObjectData(java.lang.String name)
Returns shared-object data.

Parameters:
name - shared object name
Returns:
shared-object data

sendSharedObjectAction

public final void sendSharedObjectAction(java.lang.String name,
                                         java.lang.String action,
                                         java.lang.Object... args)
Sends shared-object action.

Parameters:
name - shared object name
action - action
args - arguments

closeSharedObject

public final void closeSharedObject(java.lang.String name)
Disconnects from the shared-object.

Parameters:
name - shared object name

disconnect

public final void disconnect()
Disconnects from the server.


onStart

public java.lang.Object[] onStart()
Invoked before user connects to the server to get connection arguments.

Returns:
connection arguments

onConnect

public void onConnect(java.lang.String code,
                      java.util.Map<java.lang.String,java.lang.Object> info)
Notifies about connection to the server.

Parameters:
code - status code
info - connection info

onTime

public void onTime(long time)
Invoked after time milliseconds elapsed since connection established.

Parameters:
time - time since connection is established (in milliseconds)

onStatus

public void onStatus(java.lang.String code,
                     java.util.Map<java.lang.String,java.lang.Object> info)
Notifies about connection status.

Parameters:
code - status code
info - status info

onDisconnect

public void onDisconnect(java.lang.String code,
                         java.util.Map<java.lang.String,java.lang.Object> info)
Notifies about disconnection from the server.

Parameters:
code - status code
info - disconnection info

onCallResult

public void onCallResult(java.lang.Object cid,
                         java.lang.String method,
                         java.lang.Object[] args,
                         java.lang.Object result)
Notifies about received server#method(args) result.

Parameters:
cid - call id
method - called method name
args - called method arguments
result - result

onCallException

public void onCallException(java.lang.Object cid,
                            java.lang.String method,
                            java.lang.Object[] args,
                            java.lang.Exception e,
                            java.lang.Object details)
Notifies about received server#method(args) exception.

Parameters:
cid - call id
method - called method name
args - called method arguments
e - thrown exception
details - details

onPlayStart

public void onPlayStart(java.lang.String stream)
Notifies about stream playback start.

Parameters:
stream - playing stream name

onPlayAction

public void onPlayAction(java.lang.String stream,
                         java.lang.String action,
                         java.lang.Object... args)
Notifies about playing stream action.

Parameters:
stream - playing stream name
action - playing stream action
args - playing stream arguments

onPlayStatus

public void onPlayStatus(java.lang.String stream,
                         java.lang.String code,
                         java.util.Map<java.lang.String,java.lang.Object> info)
Notifies about playing stream status.

Parameters:
stream - playing stream name
code - status code
info - status info

onPlayStop

public void onPlayStop(java.lang.String stream,
                       MediaStreamInfo info)
Notifies about stream playback stop.

Parameters:
stream - played stream name
info - played stream info

onPublishStart

public void onPublishStart(java.lang.String stream)
Notifies about stream publish start.

Parameters:
stream - published stream name

onPublishStatus

public void onPublishStatus(java.lang.String stream,
                            java.lang.String code,
                            java.util.Map<java.lang.String,java.lang.Object> info)
Notifies about published stream status.

Parameters:
stream - published stream name
code - status code
info - status info

onPublishStop

public void onPublishStop(java.lang.String stream)
Notifies about stream publish stop.

Parameters:
stream - published stream name

onSharedObjectConnect

public void onSharedObjectConnect(java.lang.String name)
Notifies about connection to the shared object.

Parameters:
name - shared object name

onSharedObjectAction

public void onSharedObjectAction(java.lang.String name,
                                 java.lang.String action,
                                 java.lang.Object... args)
Notifies about shared object action.

Parameters:
name - shared object name
action - action
args - action arguments

onSharedObjectChange

public void onSharedObjectChange(java.lang.String name,
                                 java.lang.String attribute,
                                 java.lang.Object oldValue,
                                 java.lang.Object newValue)
Notifies about shared object attribute change.

Parameters:
name - shared object name
attribute - changed attribute
oldValue - old value
newValue - new value

onSharedObjectStatus

public void onSharedObjectStatus(java.lang.String name,
                                 java.lang.String status,
                                 java.lang.Object description)
Notifies about shared object status.

Parameters:
name - shared object name
status - shared object status
description - status description

onSharedObjectDisconnect

public void onSharedObjectDisconnect(java.lang.String name)
Notifies about disconnection from the shared object.

Parameters:
name - shared object name

onBWDone

public void onBWDone()
'onBWDone' invoked by FMS server.


onBWDone

public void onBWDone(java.lang.Object... args)
'onBWDone' invoked by FMS server.

Parameters:
args - arguments