Skip to content

Components

<UseMediaRecorder />

Props

constraints

  • Type: MediaStreamConstraints
  • Required: true

The constraints parameter is a MediaStreamConstraints object specifying the types of media to request, along with any requirements for each type.

mediaRecorderOptions

  • Type: MediaRecorderOptions
  • Default: {}

Options to pass to the MediaRecorder constructor. See MDN

Events

ts
defineEmits<{
  start: [ev: Event]
  stop: [ev: Event]
  pause: [ev: Event]
  resume: [ev: Event]
  error: [ev: Event]
}>()

Analog to the MediaRecorder events (onstart, onpause,...).

@start

Emitted when the MediaRecorder starts recording.

@pause

Emitted when the MediaRecorder pauses recording.

@resume

Emitted when the MediaRecorder resumes recording.

@stop

Emitted when the MediaRecorder stops recording.

@error

Emitted when an error occurs.

Slots

default

The default slot is used to render the component's content.

slopProps
data
  • Type: Ref<Blob[]>
  • Initial value: ref([])

An array of Blobs that are created by the MediaRecorder. The Blobs are created when the MediaRecorder is stopped. Or when the timeslice is set and the timeslice is reached.

stream
  • Type: ShallowRef<MediaStream | undefined>
  • Initial value: shallowRef()
state
  • Type: ShallowRef<MediaRecorderState | undefined>
  • Initial value: shallowRef()

The current state of the MediaRecorder. The state can be one of the following:

  • undefined - The MediaRecorder is not initialized.
  • 'inactive' - The MediaRecorder is not recording.
  • 'recording' - The MediaRecorder is recording data.
  • 'paused' - The MediaRecorder is paused.
mimeType
  • Type: ComputedRef<string | undefined>
  • Initial value: computed(()=>{})

The mimeType of the MediaRecorder. The mimeType is set when the MediaRecorder is initialized and the stream is available. You can also set the mimeType manually via mediaRecorderOptions.mimeType.

WARNING

If you set the mimeType manually (not recommended), make sure that the mimeType is supported by the browser. You can check if the mimeType is supported via isMimeTypeSupported.

isMimeTypeSupported
  • Type: ComputedRef<boolean>

If you set the mimeType manually, you can check if the mimeType is supported by the browser via this computed ref.

isSupported
  • Type: ComputedRef<boolean>

If the MediaRecorder API (and the selected MIME type) is supported by the browser.

mediaRecorder
  • Type: ComputedRef<MediaRecorder | undefined>
  • Initial value: computed(()=>{})

The MediaRecorder instance. The MediaRecorder is created when the stream is available.

start

Creates the stream and the MediaRecorder instance. The stream is created with the constraints object. The MediaRecorder is created with the stream and the mediaRecorderOptions object.

pause
resume
stop

Methods

UseMediaRecorder does expose the following methods:

start(timeslice: number | undefined): Promise<void>

Creates the stream and the MediaRecorder instance. The stream is created with the constraints object. The MediaRecorder is created with the stream and the mediaRecorderOptions object.

pause(): void

resume(): void

stop(): void

Usage

vue
<script setup>
import { ref } from 'vue'
const mr = ref() // or template ref

mr.value.start()
</script>

<template>
  <UseMediaRecorder ref="mr" />
</template>