Recording

@RequiresApi(value = 21)
class Recording : AutoCloseable


Provides controls for the currently active recording.

An active recording is created by starting a pending recording with start. If there are no errors starting the recording, upon creation, an active recording will provide controls to pause, resume or stop a recording. If errors occur while starting the recording, the active recording will be instantiated in a finalized state, and all controls will be no-ops. The state of the recording can be observed by the video record event listener provided to start when starting the recording.

Either stop or close can be called when it is desired to stop the recording. If stop or close are not called on this object before it is no longer referenced, it will be automatically stopped at a future point in time when the object is garbage collected, and no new recordings can be started from the same Recorder that generated the object until that occurs.

Summary

Public functions

Unit

Close this recording.

Boolean

Returns whether this recording is a persistent recording.

Unit
mute(muted: Boolean)

Mutes or un-mutes the current recording.

Unit

Pauses the current recording if active.

Unit

Resumes the current recording if paused.

Unit

Stops the recording, as if calling close.

Protected functions

Unit

Public functions

close

Added in 1.1.0
fun close(): Unit

Close this recording.

Once stop or close() called, all methods for controlling the state of this recording besides stop or close() will throw an IllegalStateException.

Once an active recording has been closed, the next recording can be started with start.

This method is idempotent; if the recording has already been closed or has been finalized internally, calling stop or close() is a no-op.

This method is invoked automatically on active recording instances managed by the try-with-resources statement.

isPersistent

Added in 1.3.0
@ExperimentalPersistentRecording
fun isPersistent(): Boolean

Returns whether this recording is a persistent recording.

A persistent recording will only be stopped by explicitly calling of stop and will ignore the lifecycle events or source state changes. Users are responsible of stopping a persistent recording.

Returns
Boolean

true if the recording is a persistent recording, otherwise false.

mute

Added in 1.3.0
fun mute(muted: Boolean): Unit

Mutes or un-mutes the current recording.

The output file will contain an audio track even the whole recording is muted. Create a recording without calling withAudioEnabled to record a file with no audio track.

Muting or unmuting a recording that isn't created withAudioEnabled with audio enabled is no-op.

Parameters
muted: Boolean

mutes the recording if true, un-mutes otherwise.

pause

Added in 1.1.0
fun pause(): Unit

Pauses the current recording if active.

Successful pausing of a recording will generate a VideoRecordEvent.Pause event which will be sent to the listener passed to start.

If the recording has already been paused or has been finalized internally, this is a no-op.

Throws
java.lang.IllegalStateException

if the recording has been stopped with close or stop.

resume

Added in 1.1.0
fun resume(): Unit

Resumes the current recording if paused.

Successful resuming of a recording will generate a VideoRecordEvent.Resume event which will be sent to the listener passed to start.

If the recording is active or has been finalized internally, this is a no-op.

Throws
java.lang.IllegalStateException

if the recording has been stopped with close or stop.

stop

Added in 1.1.0
fun stop(): Unit

Stops the recording, as if calling close.

This method is equivalent to calling close.

Protected functions

finalize

protected fun finalize(): Unit