Modifications apportées à Qt Multimedia
Qt 6 résultent d’un effort délibéré visant à rendre le framework plus efficace et plus facile à utiliser.
Nous nous efforçons de préserver la compatibilité binaire et source pour toutes les API publiques à chaque version. Cependant, certaines modifications étaient inévitables afin d’améliorer le framework Qt.
Le module a fait l’objet d’une refonte importante et a changé de catégorie, passant de « essentiel » à « complémentaire ». Le module Qt Multimedia de Qt 6 remplace le module Qt Multimedia de Qt 5.x. Le code existant qui utilise Qt Multimedia de Qt 5 peut être porté avec un effort limité.
Nouvelles fonctionnalités de Qt 6
Qt Multimedia propose un certain nombre de nouvelles fonctionnalités :
- QMediaCaptureSession La classe `Capture` est l'objet central pour la capture multimédia.
- QMediaRecorder La classe est désormais une classe dédiée exclusivement à l’enregistrement audio et vidéo. Elle gère l’encodage des données produites lors d’une session de capture.
- Grâce à ` QMediaFormat ` et ` QMediaRecorder`, la configuration de l’encodage souhaité lors de l’enregistrement a considérablement évolué.
- Vous pouvez désormais également surveiller l’audio enregistré lors d’une session de capture.
- La prise en charge de la sélection des pistes audio, vidéo et de sous-titres lors de la lecture de fichiers multimédias a été ajoutée.
- QAudioDecoder est désormais pris en charge sur toutes les plateformes.
Fonctionnalités supprimées
| Fonctionnalité supprimée | Remarques ou alternative suggérée |
|---|---|
| La liste de lecture dans QMediaPlayer | QMediaPlayer ne gère plus les listes de lecture dans Qt 6. |
| QMediaPlayList | Cette classe a été supprimée de l'API. Elle existe toutefois toujours dans le cadre de l'exemple Media Player. |
| QAudioProbe et QVideoProbe | L'API de détection audio et vidéo a été supprimée. |
| QAudioRecorder | Utilisez le type QML « QMediaCaptureSession » ou « CaptureSession ». |
| Type QML audio | Utilisez le type QML ` MediaPlayer `. |
| QMediaObject et QMediaBindableInterface | Ces classes ont été supprimées au profit d'une API plus directe permettant d'établir des connexions entre les objets à l'aide, par exemple, de `setVideoOutput` et ` QMediaCaptureSession`. |
| QCameraViewFinderSettings | Cette classe a été supprimée. Utilisez ` QCameraFormat ` pour définir la résolution et la fréquence d'images que la caméra doit utiliser. |
| QMediaContent | Cette classe a été supprimée. Utilisez plutôt ` QUrl ` pour les fichiers multimédias individuels. |
| QSound | Utilisez plutôt QSoundEffect. |
| QVideoFilterRunnable | Utilisez plutôt les effets de shader dans QML ou accédez au contenu de l'QVideoFrame en C++. |
| API back-end publique | L'API back-end d'Qt Multimedia est privée dans Qt 6. Cela améliore le temps de réponse pour la prise en charge de nouveaux cas d'utilisation multimédia. Toutes les classes dont le nom contient les mots « Control » ou « Abstract » dans Qt 5 sont désormais privées dans Qt 6. |
| La prise en charge de l’audio ALSA sous Linux est expérimentale | L'audio sous Linux nécessite PulseAudio. La prise en charge expérimentale d'ALSA sera dépréciée dans les futures versions de Qt. Consultez les notes relatives à la plate-forme Linux pour plus de détails. |
Fonctionnalités modifiées
Un certain nombre de classes précédemment disponibles dans « Qt Multimedia » ont subi des modifications susceptibles d’affecter le code écrit précédemment. Le tableau suivant met en évidence ces changements.
| Fonctionnalité modifiée | Remarques |
|---|---|
| Gestion des résolutions et des fréquences d'images des caméras | Leur gestion a été simplifiée et une nouvelle classe QCameraFormat facilite la sélection de la résolution et de la fréquence d'images adaptées à la caméra. |
| La gestion de la sortie vidéo côté C++ a considérablement évolué. | La classe `QAbstractVideoSurface` a été remplacée par la classe ` QVideoSink `, et la prise en charge générique du rendu a été améliorée pour couvrir tous les formats de pixelspris en charge par ` Qt Multimedia`. |
| Les types de métadonnées | QMediaMetaData a considérablement évolué : il s'agit principalement de passer de clés basées sur des chaînes de caractères à des clés basées sur des énumérations, et de réduire l'ensemble des clés prises en charge à celles compatibles avec la plupart des plateformes. |
| QMediaFormat | La gestion des formats pour les médias encodés et les paramètres de l'enregistreur multimédia ont considérablement évolué. Qt 5 fournit une API basée sur des chaînes de caractères, un format de fichier distinct, ainsi que des codecs audio et vidéo répartis dans trois classes. En revanche, Qt 6 unifie les formats au sein de la classe ` QMediaFormat `. Les paramètres supplémentaires sont spécifiés directement dans ` QMediaRecorder`. La configuration des formats de fichiers et des codecs s’effectue désormais à l’aide d’énumérations et n’utilise plus de chaînes de caractères. Cela impose certaines limitations sur l’ensemble des codecs pouvant être utilisés, mais contribue à fournir une API multiplateforme cohérente. |
| Renommage de QCameraImageCapture QImageCapture | Aucun |
| Entrées et sorties audio | QMediaPlayer et QMediaCaptureSession (ainsi que les types QML correspondants MediaPlayer et CaptureSession) ne sont connectés à aucun périphérique audio par défaut. Connectez-les explicitement à un QAudioInput/AudioInput ou QAudioOutput/AudioOutput pour capturer ou lire de l’audio. |
| Capture vidéo | Une session de capture n’est pas connectée à une caméra par défaut. Connectez-la à un objet QCamera (élément Camera) pour pouvoir capturer des vidéos ou des images fixes. |
© 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.