En esta página

MediaRecorder QML Type

Para codificar y grabar soportes generados en un CaptureSession. Más...

Import Statement: import QtMultimedia
In C++: QMediaRecorder

Propiedades

Señales

Métodos

Descripción detallada

Utilice el elemento MediaRecorder dentro de un CaptureSession para codificar y grabar:

  • Audio capturado desde una interfaz de audio (como un micrófono o una entrada de línea).
  • Vídeo capturado desde la cámara, la pantalla o la ventana de una aplicación.

El rendimiento de la codificación y grabación de vídeo está limitado por el hardware, el sistema operativo, los controladores gráficos instalados y el formato de vídeo de entrada. Si Camera, ScreenCapture, o WindowCapture producen fotogramas de vídeo más rápido de lo que MediaRecorder puede codificarlos y grabarlos, la grabadora puede omitir algunos fotogramas. Es probable que esto ocurra si la resolución de los fotogramas de entrada es alta, 4K por ejemplo, y la codificación acelerada por hardware no está disponible.

El siguiente código muestra una simple sesión de captura que contiene un MediaRecorder utilizando la cámara por defecto y la entrada de audio por defecto.

CaptureSession {
    id: captureSession
    camera: Camera {
        id: camera
        active: true
    }
    audioInput: AudioInput {}
    recorder: MediaRecorder {
        id: recorder
    }
}

El código siguiente muestra cómo se puede iniciar y detener la grabación.

CameraButton {
    text: "Record"
    visible: recorder.recorderState !== MediaRecorder.RecordingState
    onClicked: recorder.record()
}

CameraButton {
    id: stopButton
    text: "Stop"
    visible: recorder.recorderState === MediaRecorder.RecordingState
    onClicked: recorder.stop()
}

Véase también CaptureSession, Camera, ScreenCapture, WindowCapture, AudioInput, y ImageCapture.

Documentación de propiedades

actualLocation : url [read-only]

La ubicación real del último contenido multimedia.

La ubicación real se restablece cuando se asigna un nuevo outputLocation. Cuando se invoca record(), la grabadora genera la ubicación real basándose en las siguientes reglas.

  • Si outputLocation está vacío, es un directorio o un archivo sin extensión, la grabadora genera la extensión adecuada basándose en el formato multimedia seleccionado y en los tipos MIME del sistema.
  • Si outputLocation es un directorio, la grabadora genera un nuevo nombre de archivo dentro de él.
  • Si outputLocation está vacío, la grabadora genera un nuevo nombre de archivo en el directorio específico del sistema para audio o vídeo.
  • La grabadora genera la ubicación real antes de emitir recorderStateChanged(RecordingState).

audioBitRate : int [since 6.6]

Esta propiedad contiene la tasa de bits del flujo de audio comprimido en bits por segundo.

Esta propiedad se introdujo en Qt 6.6.

audioChannelCount : int [since 6.6]

Esta propiedad contiene el número de canales de audio.

Esta propiedad se introdujo en Qt 6.6.

audioSampleRate : int [since 6.6]

Esta propiedad contiene la frecuencia de muestreo de audio en Hz.

Esta propiedad se introdujo en Qt 6.6.

duration : qint64 [read-only]

Esta propiedad contiene la duración del medio grabado en milisegundos.

encodingMode : enumeration [since 6.6]

Esta propiedad contiene el modo de codificación.

Esta propiedad se introdujo en Qt 6.6.

Véase también QMediaRecorder::EncodingMode.

error : enumeration [read-only]

Esta propiedad contiene el estado actual de error de la grabadora multimedia.

ConstanteDescripción
MediaRecorder.NoErrorNo en estado de error.
MediaRecorder.ResourceErrorNo hay suficientes recursos del sistema.
MediaRecorder.FormatErrorNo se admite el formato actual.
MediaRecorder.OutOfSpaceErrorNo queda espacio en el dispositivo.
MediaRecorder.LocationNotWriteableNo se puede escribir en la ubicación de salida.

errorString : string [read-only]

Esta propiedad contiene una cadena que describe el estado de error actual.

Véase también error.

mediaFormat : mediaFormat

Esta propiedad contiene el MediaFormat actual de la grabadora.

metaData : mediaMetaData

Esta propiedad contiene metadatos asociados a la grabación.

Cuando se inicia una grabación, cualquier metadato asignado se adjuntará a esa grabación.

Nota: Asegúrese de que los metadatos se asignan correctamente asignándolos antes de iniciar la grabación.

Véase también mediaMetaData.

outputLocation : url

La ubicación de destino del contenido multimedia.

Establecer la ubicación puede fallar, por ejemplo, cuando el servicio sólo admite ubicaciones de sistemas de archivos locales pero se ha pasado una URL de red. Si la operación falla, se emite la señal errorOccurred().

La ubicación de salida puede estar vacía, ser un directorio o un archivo. La ruta a un directorio o archivo puede ser relativa o absoluta. El método record() genera la ubicación real de acuerdo con la ubicación de salida especificada y la configuración específica del sistema. Consulte la descripción de la propiedad actualLocation para más detalles.

Véase también actualLocation y errorOccurred().

quality : enumeration

Enumera los niveles de codificación de la calidad.

ConstanteValor
MediaRecorder.VeryLowQuality
MediaRecorder.LowQuality
MediaRecorder.NormalQuality
MediaRecorder.HighQuality
MediaRecorder.VeryHighQuality

recorderState : enumeration [read-only]

Esta propiedad contiene el estado actual de la grabadora multimedia.

La propiedad state representa la solicitud del usuario y se cambia de forma sincrónica durante las llamadas a record(), pause() o stop(). RecorderSstate también puede cambiar de forma asíncrona cuando falla la grabación.

ConstanteDescripción
MediaRecorder.StoppedStateLa grabadora no está activa.
MediaRecorder.RecordingStateLa grabación está solicitada.
MediaRecorder.PausedStateLa grabadora está en pausa.

videoBitRate : int [since 6.6]

Esta propiedad contiene la tasa de bits del flujo de vídeo comprimido en bits por segundo.

Esta propiedad se introdujo en Qt 6.6.

videoFrameRate : real [since 6.6]

Esta propiedad contiene la velocidad de fotogramas de vídeo.

Un valor de 0 indica que la grabadora debe hacer una elección óptima basada en lo que está disponible en la fuente de vídeo y las limitaciones del códec.

Esta propiedad se introdujo en Qt 6.6.

videoResolution : Size [since 6.6]

Esta propiedad contiene la resolución del vídeo codificado.

Establezca un tamaño vacío para que el grabador elija una resolución óptima basada en lo que está disponible en la fuente de vídeo y las limitaciones del códec.

Esta propiedad se introdujo en Qt 6.6.

Documentación de la señal

actualLocationChanged(const QUrl &location)

Señala que la dirección location real del soporte grabado ha cambiado.

Esta señal se emite normalmente cuando se inicia la grabación.

Nota: El manejador correspondiente es onActualLocationChanged.

durationChanged(qint64 duration)

Señala que la dirección duration del soporte grabado ha cambiado.

Nota: El manejador correspondiente es onDurationChanged.

errorOccurred(Error error, const QString &errorString)

Señala que se ha producido un error.

errorString contiene una descripción del error.

Nota: El manejador correspondiente es onErrorOccurred.

metaDataChanged()

Señala que los metadatos de un objeto multimedia han cambiado.

Si se modifican varios elementos de metadatos, metaDataChanged() se emite una vez.

Nota: El controlador correspondiente es onMetaDataChanged.

recorderStateChanged(RecorderState state)

Señala que la dirección state de una grabadora multimedia ha cambiado.

Nota: El manejador correspondiente es onRecorderStateChanged.

Documentación del método

void pause()

Pone en pausa la grabación.

El estado de la grabadora cambia a QMediaRecorder.PausedState.

Dependiendo de la plataforma, es posible que no se pueda pausar la grabación. En este caso, el estado de la grabadora no cambia.

void record()

Inicia la grabación.

Aunque el estado de la grabadora cambia inmediatamente a MediaRecorder.RecordingState, la grabación puede comenzar de forma asíncrona.

Si la grabación falla, se emite la señal error() y el estado de la grabadora se restablece a QMediaRecorder.StoppedState.

Este método actualiza actualLocation según sus reglas de generación.

Nota: En los dispositivos móviles, la grabación se realizará en la orientación que tenía el dispositivo al llamar a grabar y se bloqueará mientras dure la grabación. Para evitar artefactos en la interfaz de usuario, recomendamos mantener la interfaz de usuario bloqueada en la misma orientación mientras dure la grabación utilizando la propiedad contentOrientation de la ventana y desbloquearla de nuevo una vez finalizada la grabación.

void stop()

Detiene la grabación.

La grabadora detendrá la grabación. Sin embargo, el procesamiento de los datos de vídeo y audio pendientes puede tardar todavía algún tiempo. La grabación finaliza cuando el estado de la grabadora cambia a QMediaRecorder::StoppedState.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.