Änderungen an Qt Multimedia
Qt 6 sind das Ergebnis bewusster Bemühungen, das Framework effizienter und benutzerfreundlicher zu gestalten.
Wir bemühen uns, bei jeder Version die Binär- und Quellcode-Kompatibilität für alle öffentlichen APIs aufrechtzuerhalten. Einige Änderungen waren jedoch unvermeidlich, um Qt zu einem besseren Framework zu machen.
Das Modul wurde umfassend überarbeitet und ist nun nicht mehr als „essential“, sondern als „add-on“ klassifiziert. Das Modul „ Qt Multimedia “ in Qt 6 ersetzt das Modul „ Qt Multimedia “ aus Qt 5.x. Bestehender Code, der „ Qt Multimedia “ aus Qt 5 verwendet, lässt sich mit geringem Aufwand portieren.
Neue Funktionen in Qt 6
Qt Multimedia bietet eine Reihe neuer Funktionen:
- QMediaCaptureSession Die Klasse `Capture` ist das zentrale Objekt für die Medienerfassung.
- QMediaRecorder Die Klasse ist nun auf die Audio- und Videoaufzeichnung beschränkt. Sie übernimmt die Kodierung der in einer Aufnahmesitzung erzeugten Daten.
- Durch die Verwendung von ` QMediaFormat ` und ` QMediaRecorder` hat sich die Einrichtung der gewünschten Kodierung bei der Aufnahme erheblich geändert.
- Sie können nun auch das bei einer Aufnahmesitzung aufgezeichnete Audio überwachen.
- Es wurde die Unterstützung für die Auswahl von Audio-, Video- und Untertitelspuren bei der Wiedergabe von Mediendateien hinzugefügt.
- QAudioDecoder wird nun auf allen Plattformen unterstützt.
Entfernte Funktionen
| Entfernte Funktion | Hinweise oder vorgeschlagene Alternative |
|---|---|
| Die Wiedergabeliste in QMediaPlayer | QMediaPlayer übernimmt in Qt 6 keine Verwaltung von Wiedergabelisten mehr. |
| QMediaPlayList | Diese Klasse wurde aus der API entfernt. Sie ist jedoch weiterhin als Teil des Media-Player-Beispiels vorhanden. |
| QAudioProbe und QVideoProbe | Die API für Audio- und Video-Probing wurde entfernt. |
| QAudioRecorder | Verwenden Sie den QML-Typ „ QMediaCaptureSession “ oder „ CaptureSession “. |
| Audio-QML-Typ | Verwenden Sie den QML-Typ „ MediaPlayer “. |
| QMediaObject und QMediaBindableInterface | Diese Klassen wurden zugunsten einer direkteren API zum Herstellen von Verbindungen zwischen Objekten entfernt, beispielsweise mithilfe von `setVideoOutput` und ` QMediaCaptureSession`. |
| QCameraViewFinderSettings | Diese Klasse wurde entfernt. Verwenden Sie „ QCameraFormat “, um die Auflösung und Bildrate festzulegen, die die Kamera verwenden soll. |
| QMediaContent | Die Klasse wurde entfernt. Verwenden Sie stattdessen „ QUrl “ für einzelne Mediendateien. |
| QSound | Verwenden Sie stattdessen „ QSoundEffect “. |
| QVideoFilterRunnable | Verwenden Sie stattdessen Shader-Effekte in QML oder greifen Sie in C++ auf den Inhalt von „ QVideoFrame “ zu. |
| Öffentliche Backend-API | Die Backend-API von „ Qt Multimedia “ ist in Qt 6 privat. Dies verbessert die Reaktionszeit bei der Unterstützung neuer Multimedia-Anwendungsfälle. Alle Klassen, deren Klassenname in Qt 5 die Wörter „Control“ oder „Abstract“ enthält, sind in Qt 6 nun privat. |
| Die Unterstützung für ALSA-Audio unter Linux ist experimentell | Für Audio unter Linux ist PulseAudio erforderlich. Die experimentelle ALSA-Unterstützung wird in zukünftigen Qt-Versionen als veraltet markiert. Weitere Informationen finden Sie in den Hinweisen zur Linux-Plattform. |
Geänderte Funktionen
Eine Reihe von Klassen, die zuvor in „ Qt Multimedia “ angeboten wurden, haben sich in einer Weise geändert, die sich auf bereits geschriebenen Code auswirken kann. Die folgende Tabelle hebt diese Änderungen hervor.
| Geänderte Funktion | Hinweise |
|---|---|
| Behandlung von Kameraauflösungen und Bildraten | Die Handhabung dieser Parameter wurde vereinfacht, und eine neue „ QCameraFormat “-Klasse hilft bei der Auswahl der richtigen Auflösung und Bildrate für die Kamera. |
| Die Handhabung der Videoausgabe auf der C++-Seite hat sich erheblich geändert. | „QAbstractVideoSurface“ wurde durch die Klasse „ QVideoSink “ ersetzt, und die generische Rendering-Unterstützung wurde erweitert, um alle von „ Qt Multimedia “ unterstützten Pixelformateabzudecken. |
| Die Metadatentypen | QMediaMetaData hat sich erheblich geändert: Vor allem wurde von stringbasierten auf enumbasierte Schlüssel umgestellt und die Menge der unterstützten Schlüssel auf diejenigen reduziert, die auf den meisten Plattformen unterstützt werden können. |
| QMediaFormat | Die Handhabung von Formaten für kodierte Medien und die Einstellungen für den Medienrekorder haben sich erheblich geändert. Qt 5 bietet eine stringbasierte API, ein separates Dateiformat sowie Audio- und Video-Codecs in drei Klassen. Qt 6 vereint die Formate jedoch in der Klasse „ QMediaFormat “. Zusätzliche Einstellungen werden direkt in ` QMediaRecorder` festgelegt. Die Konfiguration von Dateiformaten und Codecs erfolgt nun über Enums und nicht mehr über Zeichenketten. Dies schränkt die Auswahl der verwendbaren Codecs zwar etwas ein, trägt aber zu einer einheitlichen plattformübergreifenden API bei. |
| QCameraImageCapture umbenannt QImageCapture | Keine |
| Audio-Ein- und -Ausgänge | QMediaPlayer sowie ` QMediaCaptureSession ` (und die entsprechenden QML-Typen ` MediaPlayer ` und ` CaptureSession`) sind standardmäßig nicht mit Audiogeräten verbunden. Verbinden Sie sie explizit mit einem ` QAudioInput` / `AudioInput ` oder ` QAudioOutput` / `AudioOutput `, um Audio aufzunehmen oder wiederzugeben. |
| Videoaufnahme | Eine Aufnahmesitzung ist standardmäßig nicht mit einer Kamera verbunden. Verbinden Sie sie mit einem QCamera -Objekt (Element „Camera“), um Videos oder Standbilder aufnehmen zu können. |
© 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.