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)
})