Sur cette page

Video QML Type

Un type de commodité pour l'affichage d'une vidéo spécifiée. Plus d'informations...

Import Statement: import QtMultimedia
Inherits:

Item

Propriétés

Signaux

Méthodes

Description détaillée

Video est un type de commodité combinant les fonctionnalités d'un MediaPlayer et d'un VideoOutput en un seul. Il fournit une fonctionnalité simple de lecture vidéo sans avoir à déclarer plusieurs types.

Voici un exemple de code permettant de mettre en œuvre la lecture vidéo dans une scène.

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
}

Le fichier source, video.avi, est lu lorsque vous cliquez sur le parent de MouseArea. La vidéo est lue dans une zone de 800 x 600 pixels et sa propriété id a la valeur video.

Remarquez que les signaux pour Keys ont été définis et que le fait d'appuyer sur le bouton :

  • Spacebar fait basculer le bouton de pause.
  • Left Arrow déplace la position actuelle dans la vidéo 5 secondes plus tôt.
  • Right Arrow avance la position actuelle dans la vidéo de 5 secondes.

La vidéo prend en charge la présentation vidéo non transformée, étirée et uniformément mise à l'échelle. Pour une description de la présentation étirée à échelle uniforme, voir la description de la propriété fillMode.

Voir également MediaPlayer et VideoOutput.

Documentation sur les propriétés

autoPlay : bool [since 6.7]

Cette propriété détermine si la lecture du média commence automatiquement après son chargement. La valeur par défaut est false.

Cette propriété a été introduite dans Qt 6.7.

bufferProgress : real

Cette propriété indique dans quelle mesure le tampon de données est actuellement rempli, de 0.0 (vide) à 1.0 (plein).

duration : int

Cette propriété indique la durée du média en millisecondes.

Si le média n'a pas de durée fixe (un flux en direct par exemple), cette propriété sera 0.

endOfStreamPolicy : enumeration [since 6.9]

Cette propriété spécifie la politique à appliquer lorsque le flux vidéo se termine.

L'adresse endOfStreamPolicy peut être l'une des suivantes

ConstanteDescription
ClearOutputLa sortie vidéo est effacée.
KeepLastFrameLa sortie vidéo continue d'afficher la dernière image. Utilisez la méthode clearOutput() pour effacer la sortie manuellement.

La valeur par défaut est VideoOutput.ClearOutput.

Cette propriété a été introduite dans Qt 6.9.

error : enumeration

Cette propriété contient l'état d'erreur de la vidéo. Il peut s'agir de l'un des éléments suivants

  • MediaPlayer.NoError - il n'y a pas d'erreur en cours.
  • MediaPlayer.ResourceError - la vidéo ne peut pas être lue en raison d'un problème d'allocation des ressources.
  • MediaPlayer.FormatError - le format de la vidéo n'est pas pris en charge.
  • MediaPlayer.NetworkError - la vidéo ne peut pas être lue en raison de problèmes de réseau.
  • MediaPlayerAccessDenied - la vidéo ne peut pas être lue en raison d'autorisations insuffisantes.
  • MediaPlayerServiceMissing - la vidéo ne peut pas être lue car le service multimédia n'a pas pu être instancié.

errorString : string

Cette propriété contient une chaîne de caractères décrivant plus en détail la condition d'erreur actuelle.

fillMode : enumeration

Cette propriété permet de définir la manière dont la vidéo est mise à l'échelle pour s'adapter à la zone cible.

  • VideoOutput.Stretch - la vidéo est mise à l'échelle pour s'adapter à la zone cible
  • VideoOutputPreserveAspectFit - la vidéo est mise à l'échelle de manière uniforme pour s'adapter à la zone cible, sans recadrage.
  • VideoOutput.PreserveAspectCrop - la vidéo est mise à l'échelle de manière uniforme pour s'adapter à la zone cible, avec recadrage si nécessaire.

Ce type étant utilisé par commodité en QML, il ne prend pas directement en charge les énumérations. Les énumérations de VideoOutput sont donc utilisées pour accéder aux modes de remplissage disponibles.

Le mode de remplissage par défaut est preserveAspectFit.

hasAudio : bool

Cette propriété indique si le média en cours a un contenu audio.

hasVideo : bool

Cette propriété indique si le média en cours a un contenu vidéo.

loops : int

Détermine le nombre de fois que le média est lu avant de s'arrêter. La valeur MediaPlayer.Infinite permet de lire en boucle le fichier multimédia actuel pour toujours.

La valeur par défaut est 1. La définition de cette propriété sur 0 n'a aucun effet.

metaData : mediaMetaData

Cette propriété contient les métadonnées du média en cours.

Voir MediaPlayer.metaData pour plus de détails sur chaque clé de métadonnées.

Voir également mediaMetaData.

mirrored : int

Détermine si la vidéo affichée est mise en miroir autour de son axe vertical. La mise en miroir est appliquée après orientation. La valeur par défaut est false.

muted : bool

Cette propriété indique si la sortie audio est coupée.

orientation : int [since 6.9]

Cette propriété détermine l'angle, en degrés, auquel la vidéo affichée est tournée dans le sens des aiguilles d'une montre en coordonnées vidéo, l'axe Y étant orienté vers le bas de l'écran. La transformation de l'orientation est appliquée avant mirrored.

Seuls les multiples de 90 degrés sont pris en charge, c'est-à-dire 0, 90, -90, 180, 270, etc.

La valeur par défaut est 0.

Cette propriété a été introduite dans Qt 6.9.

playbackRate : real

Cette propriété définit la vitesse de lecture de la vidéo comme un multiple de la vitesse normale.

playbackState : enumeration

Cette propriété en lecture seule indique l'état de lecture du média.

L'état par défaut est MediaPlayer.StoppedState.

position : int

Cette propriété indique la position de lecture actuelle en millisecondes.

seekable : bool

Cette propriété indique si la position de lecture de la vidéo peut être modifiée.

Si elle est vraie, l'appel à la méthode seek() ou la modification de la propriété position entraînera la recherche de la nouvelle position de lecture.

source : url

Cette propriété contient l'URL source du média.

volume : real

Cette propriété contient le volume audio.

Le volume est échelonné linéairement de 0.0 (silence) à 1.0 (volume maximum). Les valeurs situées en dehors de cette plage seront bridées.

Le volume par défaut est 1.0.

Les commandes de volume de l'interface utilisateur doivent généralement être mises à l'échelle de manière non linéaire. Par exemple, l'utilisation d'une échelle logarithmique produira des changements linéaires dans l'intensité sonore perçue, ce qui correspond à ce qu'un utilisateur attend normalement d'un contrôle de volume. Voir QtAudio::convertVolume() pour plus de détails.

Documentation sur les signaux

errorOccurred(error, errorString)

Ce signal est émis lorsqu'une erreur s'est produite à l'adresse error. Le paramètre errorString peut contenir des informations plus détaillées sur l'erreur.

Remarque : le gestionnaire correspondant est onErrorOccurred.

paused()

Ce signal est émis lorsque la lecture est mise en pause.

Remarque : le gestionnaire correspondant est onPaused.

playing()

Ce signal est émis lorsque la lecture est lancée ou poursuivie.

Remarque : le gestionnaire correspondant est onPlaying.

stopped()

Ce signal est émis lorsque la lecture est arrêtée.

Remarque : le gestionnaire correspondant est onStopped.

Documentation de la méthode

[since 6.9] clearOutput()

Efface la sortie vidéo en supprimant l'image vidéo actuelle. Cette méthode est recommandée lorsque vous devez supprimer la dernière image vidéo après que le flux vidéo se termine avec la propriété endOfStreamPolicy Video définie sur KeepLastFrame.

Cette méthode a été introduite dans Qt 6.9.

pause()

Interrompt la lecture du support.

play()

Lance la lecture du support.

seek(offset)

Si la propriété seekable est vraie, recherche la position de lecture actuelle sur offset.

Voir également seekable et position.

stop()

Arrête la lecture du support.

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