Package org.openni
Class PlaybackControl
java.lang.Object
org.openni.PlaybackControl
The PlaybackControl class provides access to a series of specific to playing back a recording
from a file device.
When playing a stream back from a recording instead of playing from a live device, it is possible
to vary playback speed, change the current time location (ie fast forward / rewind / seek),
specify whether the playback should be repeated at the end of the recording, and query the total
size of the recording.
Since none of these functions make sense in the context of a physical device, they are split out
into a separate playback control class. To use, simply create your file device, create a
PlaybackControl, and then attach the PlaybackControl to the file device.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionint
getNumberOfFrames
(VideoStream stream) Provides the a count of frames that this recording contains for a given stream.boolean
Gets the current repeat setting of the file device.float
getSpeed()
Getter function for the current playback speed of this device.void
seek
(VideoStream stream, int frameIndex) Seeks within a VideoStream to a given FrameID.void
setRepeatEnabled
(boolean repeat) Changes the current repeat mode of the device.void
setSpeed
(float speed) Setter function for the playback speed of the device.
-
Constructor Details
-
PlaybackControl
-
-
Method Details
-
getSpeed
public float getSpeed()Getter function for the current playback speed of this device. This value is expressed as a multiple of the speed the original recording was taken at. For example, if the original recording was at 30fps, and playback speed is set to 0.5, then the recording will play at 15fps. If playback speed is set to 2.0, then the recording would playback at 60fps. In addition, there are two "special" values. A playback speed of 0.0 indicates that the playback should occur as fast as the system is capable of returning frames. This is most useful when testing algorithms on large data sets, as it enables playback to be done at a much higher rate than would otherwise be possible. A value of -1 indicates that speed is "manual". In this mode, new frames will only become available when an application manually reads them. If used in a polling loop, this setting also enables systems to read and process frames limited only by available processing speeds. -
setSpeed
public void setSpeed(float speed) Setter function for the playback speed of the device. For a full explanation of what this value means @see PlaybackControl::getSpeed().- Parameters:
speed
- Desired new value of playback speed, as ratio of original recording.
-
getRepeatEnabled
public boolean getRepeatEnabled()Gets the current repeat setting of the file device.- Returns:
- true if repeat is enabled, false if not enabled.
-
setRepeatEnabled
public void setRepeatEnabled(boolean repeat) Changes the current repeat mode of the device. If repeat mode is turned on, then the recording will begin playback again at the beginning after the last frame is read. If turned off, no more frames will become available after last frame is read.- Parameters:
repeat
- New value for repeat -- true to enable, false to disable
-
seek
Seeks within a VideoStream to a given FrameID. Note that when this function is called on one stream, all other streams will also be changed to the corresponding place in the recording. The FrameIDs of different streams may not match, since FrameIDs may differ for streams that are not synchronized, but the recording will set all streams to the same moment in time.- Parameters:
stream
- Stream for which the frameIndex value is valid.frameIndex
- Frame index to move playback to
-
getNumberOfFrames
Provides the a count of frames that this recording contains for a given stream. This is useful both to determine the length of the recording, and to ensure that a valid Frame Index is set when using theseek(VideoStream stream, int frameIndex)
function.- Parameters:
stream
- The video stream to count frames for- Returns:
- Number of frames in provided
VideoStream
, or 0 if the stream is not part of the recording
-