Skip to main content

Media Recorder Events

Description

This Media Recorder allows you to capure screenshots and record video of your Studio project at runtime.

Media Recorder events are emitted on the world.events.globalId.

Events

RECORDER_SCREENSHOT_READY

Emitted when screenshot is ready.

Properties

PropertyTypeDescription
blobBlobThe JPEG image blob of the screenshot

Example

defineState('initial-state').initial().listen(world.events.globalId, ecs.events.RECORDER_SCREENSHOT_READY, (event) => {
console.log('Screenshot blob: ', event.data.blob)
})

RECORDER_VIDEO_STARTED

Emitted when recording has started.

Properties

None.

Example

defineState('initial-state').initial().listen(world.events.globalId, ecs.events.RECORDER_VIDEO_STARTED, () => {
console.log('Recording started')
})

RECORDER_VIDEO_STOPPED

Emitted when recording has stopped.

Properties

None.

Example

defineState('initial-state').initial().listen(world.events.globalId, ecs.events.RECORDER_VIDEO_STARTED, () => {
console.log('Recording stopped')
})

RECORDER_VIDEO_ERROR

Emitted when there is an error.

Properties

PropertyTypeDescription
messagestringThe error message
namestringThe error name
stackstringThe error stack trace

Example

defineState('initial-state').initial().listen(world.events.globalId, ecs.events.RECORDER_VIDEO_ERROR, (event) => {
console.log('Recorder error: ', event.data.message)
})

RECORDER_VIDEO_READY

Emitted when recording has completed and video is ready.

Properties

PropertyTypeDescription
videoBlobBlobThe recorded video blob

Example

defineState('initial-state').initial().listen(world.events.globalId, ecs.events.RECORDER_VIDEO_READY, (event) => {
console.log('Video ready: ', event.data.videoBlob)
})

RECORDER_PREVIEW_READY

Emitted when a previewable, but not sharing-optimized, video is ready (Android/Desktop only).

Properties

PropertyTypeDescription
videoBlobBlobThe preview video blob

Example

defineState('initial-state').initial().listen(world.events.globalId, ecs.events.RECORDER_PREVIEW_READY, (event) => {
console.log('Preview ready: ', event.data.videoBlob)
})

RECORDER_FINALIZE_PROGRESS

Emitted when the media recorder is making progress in the final export (Android/Desktop only).

Properties

PropertyTypeDescription
progressnumberFinalization progress (0 to 1)

Example

defineState('initial-state').initial().listen(world.events.globalId, ecs.events.RECORDER_FINALIZE_PROGRESS, (event) => {
console.log('Finalize progress: ', event.data.progress * 100)
})

RECORDER_PROCESS_FRAME

Properties

PropertyTypeDescription
frameImageDataThe processed video frame
timestampnumberThe timestamp of the frame (ms)

Example

defineState('initial-state').initial().listen(world.events.globalId, ecs.events.RECORDER_PROCESS_FRAME, (event) => {
console.log('Process frame: ', event.data.timestamp, event.data.frame)
})