MediaRecorder QML Type
Pour les supports d'encodage et d'enregistrement créés dans un CaptureSession. En savoir plus...
| Import Statement: | import QtMultimedia |
| In C++: | QMediaRecorder |
Propriétés
- actualLocation : url
- audioBitRate : int
(since 6.6) - audioChannelCount : int
(since 6.6) - audioSampleRate : int
(since 6.6) - duration : qint64
- encodingMode : enumeration
(since 6.6) - error : enumeration
- errorString : string
- mediaFormat : mediaFormat
- metaData : mediaMetaData
- outputLocation : url
- quality : enumeration
- recorderState : enumeration
- videoBitRate : int
(since 6.6) - videoFrameRate : real
(since 6.6) - videoResolution : Size
(since 6.6)
Signaux
- actualLocationChanged(const QUrl &location)
- durationChanged(qint64 duration)
- errorOccurred(Error error, const QString &errorString)
- metaDataChanged()
- recorderStateChanged(RecorderState state)
Méthodes
Description détaillée
Utilisez l'élément MediaRecorder au sein d'un CaptureSession pour encoder et enregistrer :
- L'audio capturé à partir d'une interface audio (comme un microphone ou une entrée ligne).
- La vidéo capturée à partir d’une caméra, d’un écran ou d’une fenêtre d’application.
Les performances de l'encodage et de l'enregistrement vidéo dépendent du matériel, du système d'exploitation, des pilotes graphiques installés et du format vidéo d'entrée. Si Camera, ScreenCapture ou WindowCapture génère des images vidéo plus rapidement que MediaRecorder ne peut les encoder et les enregistrer, l'enregistreur peut omettre certaines images. Ce phénomène est susceptible de se produire si la résolution d'entrée est élevée, par exemple en 4K, et si l'encodage accéléré par le matériel n'est pas disponible.
Le code ci-dessous présente une session de capture simple utilisant un MediaRecorder avec la caméra et l’entrée audio par défaut.
CaptureSession {
id: captureSession
camera: Camera {
id: camera
active: true
}
audioInput: AudioInput {}
recorder: MediaRecorder {
id: recorder
}
}Le code ci-dessous montre comment démarrer et arrêter l'enregistrement.
CameraButton {
text: "Record"
visible: recorder.recorderState !== MediaRecorder.RecordingState
onClicked: recorder.record()
}
CameraButton {
id: stopButton
text: "Stop"
visible: recorder.recorderState === MediaRecorder.RecordingState
onClicked: recorder.stop()
}Voir également CaptureSession, Camera, ScreenCapture, WindowCapture, AudioInput et ImageCapture.
Documentation relative aux propriétés
actualLocation : url [read-only]
Emplacement actuel du dernier contenu multimédia.
L'emplacement réel est réinitialisé lorsqu'un nouvel identifiant « outputLocation » est attribué. Lorsque la fonction record() est appelée, l'enregistreur génère l'emplacement réel en se basant sur les règles suivantes.
- Si
outputLocationest vide, s’il s’agit d’un répertoire ou d’un fichier sans extension, l’enregistreur génère l’extension appropriée en fonction du format multimédia sélectionné et des types MIME du système. - Si
outputLocationest un répertoire, l’enregistreur génère un nouveau nom de fichier à l’intérieur de celui-ci. - Si `
outputLocation` est vide, l’enregistreur génère un nouveau nom de fichier dans le répertoire spécifique au système pour les fichiers audio ou vidéo. - L'enregistreur génère l'emplacement réel avant d'émettre `
recorderStateChanged(RecordingState)`.
audioBitRate : int [since 6.6]
Cette propriété contient le débit binaire du flux audio compressé, exprimé en bits par seconde.
Cette propriété a été introduite dans Qt 6.6.
audioChannelCount : int [since 6.6]
Cette propriété indique le nombre de canaux audio.
Cette propriété a été introduite dans Qt 6.6.
audioSampleRate : int [since 6.6]
Cette propriété contient la fréquence d'échantillonnage audio en Hz.
Cette propriété a été introduite dans Qt 6.6.
duration : qint64 [read-only]
Cette propriété contient la durée de l'enregistrement, exprimée en millisecondes.
encodingMode : enumeration [since 6.6]
Cette propriété définit le mode d'encodage.
Cette propriété a été introduite dans Qt 6.6.
Voir également QMediaRecorder::EncodingMode.
error : enumeration [read-only]
Cette propriété contient l'état actuel des erreurs de l'enregistreur multimédia.
| Constante | Description |
|---|---|
MediaRecorder.NoError | Pas d'état d'erreur. |
MediaRecorder.ResourceError | Ressources système insuffisantes |
MediaRecorder.FormatError | le format actuel n'est pas pris en charge. |
MediaRecorder.OutOfSpaceError | Plus d'espace disponible sur le périphérique. |
MediaRecorder.LocationNotWriteable | L'emplacement de sortie n'est pas accessible en écriture. |
errorString : string [read-only]
Cette propriété contient une chaîne de caractères décrivant l'état d'erreur actuel.
Voir également error.
mediaFormat : mediaFormat
Cette propriété contient le MediaFormat actuel de l'enregistreur.
metaData : mediaMetaData
Cette propriété contient les métadonnées associées à l'enregistrement.
Lorsqu'un enregistrement est lancé, toutes les métadonnées attribuées seront associées à cet enregistrement.
Remarque : assurez-vous que les métadonnées sont correctement attribuées en les définissant avant de lancer l'enregistrement.
Voir également mediaMetaData.
outputLocation : url
Emplacement de destination du contenu multimédia.
La définition de l'emplacement peut échouer, par exemple lorsque le service ne prend en charge que les emplacements du système de fichiers local mais qu'une URL réseau a été fournie. Si l'opération échoue, le signal errorOccurred() est émis.
L'emplacement de sortie peut être vide, correspondre à un répertoire ou à un fichier. Le chemin d'accès à un répertoire ou à un fichier peut être relatif ou absolu. La méthode ` record()` génère l'emplacement réel en fonction de l'emplacement de sortie spécifié et des paramètres propres au système. Pour plus de détails, reportez-vous à la description de la propriété ` actualLocation `.
Voir également actualLocation et errorOccurred().
quality : enumeration
Énumère les niveaux de qualité d'encodage.
| Constante | Valeur |
|---|---|
MediaRecorder.VeryLowQuality | |
MediaRecorder.LowQuality | |
MediaRecorder.NormalQuality | |
MediaRecorder.HighQuality | |
MediaRecorder.VeryHighQuality |
recorderState : enumeration [read-only]
Cette propriété contient l'état actuel de l'enregistreur multimédia.
La propriété « state » représente la requête de l'utilisateur et est modifiée de manière synchrone lors des appels à record(), pause() ou stop(). L'état de l'enregistreur peut également changer de manière asynchrone en cas d'échec de l'enregistrement.
| Constante | Description |
|---|---|
MediaRecorder.StoppedState | L'enregistreur n'est pas actif. |
MediaRecorder.RecordingState | L'enregistrement est demandé. |
MediaRecorder.PausedState | L'enregistreur est en pause. |
videoBitRate : int [since 6.6]
Cette propriété contient le débit binaire du flux vidéo compressé, exprimé en bits par seconde.
Cette propriété a été introduite dans Qt 6.6.
videoFrameRate : real [since 6.6]
Cette propriété définit la fréquence d'images utilisée lors de l'encodage.
Si cette propriété est définie sur une fréquence d'images positive, MediaRecorder tente d'encoder à cette fréquence. Si les fréquences d'images de la source vidéo et de l'encodeur sont différentes, certaines images de la source peuvent être supprimées ou dupliquées afin d'atteindre la fréquence cible.
Si elle est laissée à sa valeur par défaut (-1) ou définie sur une autre valeur non positive, MediaRecorder tente de faire le choix optimal en fonction de la source vidéo et des limitations du codec.
Cette propriété a été introduite dans Qt 6.6.
videoResolution : Size [since 6.6]
Cette propriété contient la résolution de la vidéo encodée.
Définissez une valeur vide pour la propriété « Size » afin que l'enregistreur choisisse une résolution optimale en fonction des données disponibles provenant de la source vidéo et des limitations du codec.
Cette propriété a été introduite dans Qt 6.6.
Documentation sur les signaux
actualLocationChanged(const QUrl &location)
Indique que l'location s réelles du support enregistré a changé.
Ce signal est généralement émis au début de l'enregistrement.
Remarque : le gestionnaire correspondant est onActualLocationChanged.
durationChanged(qint64 duration)
Indique que l'duration s du support enregistré a changé.
Remarque : le gestionnaire correspondant est onDurationChanged.
errorOccurred(Error error, const QString &errorString)
Indique qu'une « error » s'est produite.
L'errorString contient une description de l'erreur.
Remarque : le gestionnaire correspondant est onErrorOccurred.
metaDataChanged()
Indique que les métadonnées d'un objet multimédia ont été modifiées.
Si plusieurs éléments de métadonnées sont modifiés, la méthode metaDataChanged() est appelée une seule fois.
Remarque : le gestionnaire correspondant est ` onMetaDataChanged`.
recorderStateChanged(RecorderState state)
Indique que l'state s d'un enregistreur multimédia a changé.
Remarque : le gestionnaire correspondant est onRecorderStateChanged.
Documentation de la méthode
void pause()
Met l'enregistrement en pause.
L'état de l'enregistreur passe à « QMediaRecorder.PausedState ».
Selon la plateforme, la mise en pause de l'enregistrement peut ne pas être prise en charge. Dans ce cas, l'état de l'enregistreur reste inchangé.
void record()
Lance l'enregistrement.
Bien que l'état de l'enregistreur passe immédiatement à « MediaRecorder.RecordingState », l'enregistrement peut démarrer de manière asynchrone.
Si l'enregistrement échoue, le signal `error()` est émis et l'état de l'enregistreur est réinitialisé à ` QMediaRecorder.StoppedState`.
Cette méthode met à jour « actualLocation » selon ses règles de génération.
Remarque : sur les appareils mobiles, l’enregistrement s’effectue selon l’orientation de l’appareil au moment de l’appel de la méthode record et celle-ci est verrouillée pendant toute la durée de l’enregistrement. Pour éviter les artefacts sur l’interface utilisateur, nous recommandons de maintenir l’interface utilisateur verrouillée sur la même orientation tant que l’enregistrement est en cours, à l’aide de la propriété contentOrientation de la fenêtre, puis de la déverrouiller une fois l’enregistrement terminé.
void stop()
Arrête l'enregistrement.
L'enregistreur arrête l'enregistrement. Le traitement des données vidéo et audio en attente peut toutefois encore prendre un certain temps. L'enregistrement est terminé dès que l'état de l'enregistreur multimédia passe à « 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.