En esta página

Video QML Type

Un tipo práctico para mostrar un vídeo especificado. Más...

Import Statement: import QtMultimedia
Inherits:

Item

Propiedades

Señales

Métodos

Descripción detallada

Video es un tipo práctico que combina la funcionalidad de MediaPlayer y VideoOutput en uno. Proporciona una funcionalidad sencilla de reproducción de vídeo sin tener que declarar varios tipos.

A continuación se muestra un ejemplo de código para implementar la reproducción de vídeo en una escena.

Video {
    id: video
    width : 800
    height : 600
    source: "video.avi"

    MouseArea {
        anchors.fill: parent
        onClicked: {
            video.play()
        }
    }

    focus: true
    Keys.onSpacePressed: video.playbackState == MediaPlayer.PlayingState ? video.pause() : video.play()
    Keys.onLeftPressed: video.position = video.position - 5000
    Keys.onRightPressed: video.position = video.position + 5000
}

El archivo fuente, video.avi, se reproduce cuando se hace clic en el padre de MouseArea. El vídeo se reproduce en un área de 800 por 600 píxeles, y su propiedad id tiene el valor video.

Observa que como se han definido las señales para Keys pulsando el botón:

  • Spacebar activa el botón de pausa.
  • Left Arrow mueve la posición actual en el vídeo a 5 segundos antes.
  • Right Arrow avanza la posición actual en el vídeo 5 segundos.

El vídeo admite la presentación de vídeo sin transformar, estirado y uniformemente escalado. Para una descripción de la presentación estirada y uniformemente escalada, véase la descripción de la propiedad fillMode.

Véase también MediaPlayer y VideoOutput.

Documentación de la propiedad

autoPlay : bool [since 6.7]

Esta propiedad controla si el medio comienza a reproducirse automáticamente después de ser cargado. Por defecto es false.

Esta propiedad se introdujo en Qt 6.7.

bufferProgress : real

Esta propiedad indica la cantidad de memoria intermedia de datos que está llena, de 0.0 (vacía) a 1.0 (llena).

duration : int

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

Si el medio no tiene una duración fija (una transmisión en directo, por ejemplo) será 0.

endOfStreamPolicy : enumeration [since 6.9]

Esta propiedad especifica la política a aplicar cuando finaliza el flujo de vídeo.

El endOfStreamPolicy puede ser uno de los siguientes:

ConstanteDescripción
ClearOutputLa salida de vídeo se borra.
KeepLastFrameLa salida de vídeo continúa mostrando el último fotograma. Utilice el método clearOutput() para borrar la salida manualmente.

El valor por defecto es VideoOutput.ClearOutput.

Esta propiedad se introdujo en Qt 6.9.

error : enumeration

Esta propiedad contiene el estado de error del vídeo. Puede ser uno de los siguientes

  • MediaPlayer.NoError - no hay ningún error actual.
  • MediaPlayer.ResourceError - el vídeo no puede reproducirse debido a un problema de asignación de recursos.
  • MediaPlayerFormatError - el formato de vídeo no es compatible.
  • MediaPlayer.NetworkError - el vídeo no puede reproducirse debido a problemas de red.
  • MediaPlayerAccessDenied - el vídeo no puede reproducirse debido a permisos insuficientes.
  • MediaPlayerServiceMissing - el vídeo no puede reproducirse porque no se ha podido instanciar el servicio multimedia.

errorString : string

Esta propiedad contiene una cadena que describe con más detalle la condición de error actual.

fillMode : enumeration

Establezca esta propiedad para definir cómo se escala el vídeo para ajustarlo al área de destino.

  • VideoOutput.Stretch - el vídeo se escala para ajustarse
  • VideoOutputPreserveAspectFit - el vídeo se escala uniformemente para ajustarlo sin recortarlo
  • VideoOutputPreserveAspectCrop - el vídeo se escala uniformemente para rellenar, recortando si es necesario.

Debido a que este tipo es por conveniencia en QML, no soporta enumeraciones directamente, por lo que las enumeraciones de VideoOutput se utilizan para acceder a los modos de relleno disponibles.

El modo de relleno predeterminado es preserveAspectFit.

hasAudio : bool

Esta propiedad indica si el medio actual tiene contenido de audio.

hasVideo : bool

Esta propiedad indica si el medio actual tiene contenido de vídeo.

loops : int

Determina la frecuencia con la que se reproduce el medio antes de detenerse. Establezca MediaPlayer.Infinite para reproducir en bucle el archivo multimedia actual para siempre.

El valor por defecto es 1. Establecer esta propiedad a 0 no tiene ningún efecto.

metaData : mediaMetaData

Esta propiedad contiene los metadatos del soporte actual.

Consulte MediaPlayer.metaData para obtener más información sobre cada clave de metadatos.

Véase también mediaMetaData.

mirrored : int

Determina si el vídeo visualizado se refleja alrededor de su eje vertical. El reflejo se aplica después de orientation. El valor por defecto es false.

muted : bool

Esta propiedad indica si la salida de audio está silenciada.

orientation : int [since 6.9]

Esta propiedad determina el ángulo, en grados, con el que el vídeo visualizado gira en el sentido de las agujas del reloj en coordenadas de vídeo, donde el eje Y apunta hacia abajo en la pantalla. La transformación de orientación se aplica antes de mirrored.

Sólo se admiten múltiplos de 90 grados, es decir, 0, 90, -90, 180, 270, etc., de lo contrario, se ignora el valor especificado.

El valor por defecto es 0.

Esta propiedad se introdujo en Qt 6.9.

playbackRate : real

Esta propiedad contiene la velocidad a la que se reproduce el vídeo como múltiplo de la velocidad normal.

playbackState : enumeration

Esta propiedad de sólo lectura indica el estado de reproducción del medio.

El estado por defecto es MediaPlayer.StoppedState.

position : int

Esta propiedad contiene la posición actual de reproducción en milisegundos.

seekable : bool

Esta propiedad mantiene si la posición de reproducción del vídeo puede ser cambiada.

Si es verdadero, llamar al método seek() o cambiar la propiedad position hará que la reproducción busque la nueva posición.

source : url

Esta propiedad contiene la URL de origen del medio.

volume : real

Esta propiedad contiene el volumen del audio.

El volumen se escala linealmente desde 0.0 (silencio) hasta 1.0 (volumen máximo). Los valores que queden fuera de este rango se bloquearán.

El volumen por defecto es 1.0.

Normalmente, los controles de volumen de la interfaz de usuario deben escalarse de forma no lineal. Por ejemplo, utilizar una escala logarítmica producirá cambios lineales en el volumen percibido, que es lo que un usuario esperaría normalmente de un control de volumen. Para más información, consulte QtAudio::convertVolume().

Documentación sobre señales

errorOccurred(error, errorString)

Esta señal se emite cuando se ha producido un error. El parámetro errorString puede contener información más detallada sobre el error.

Nota: El manejador correspondiente es onErrorOccurred.

paused()

Esta señal se emite cuando se pausa la reproducción.

Nota: El manejador correspondiente es onPaused.

playing()

Esta señal se emite cuando se inicia o continúa la reproducción.

Nota: El manejador correspondiente es onPlaying.

stopped()

Esta señal se emite cuando se detiene la reproducción.

Nota: El manejador correspondiente es onStopped.

Documentación del método

[since 6.9] clearOutput()

Borra la salida de vídeo eliminando el fotograma de vídeo actual. Este método se recomienda cuando se necesita eliminar el último fotograma de vídeo después de que el flujo de vídeo finalice con la propiedad endOfStreamPolicy Video establecida en KeepLastFrame.

Este método se introdujo en Qt 6.9.

pause()

Pone en pausa la reproducción del medio.

play()

Inicia la reproducción del medio.

seek(offset)

Si la propiedad seekable es verdadera, busca la posición de reproducción actual en offset.

Véase también seekable y position.

stop()

Detiene la reproducción del soporte.

© 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.