MediaRecorder QML Type
Zur Kodierung und Aufzeichnung von Medien, die in einem CaptureSession erzeugt werden. Mehr...
Import Statement: | import QtMultimedia |
In C++: | QMediaRecorder |
Eigenschaften
- 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)
Signale
- actualLocationChanged(const QUrl &location)
- durationChanged(qint64 duration)
- errorOccurred(Error error, const QString &errorString)
- metaDataChanged()
- recorderStateChanged(RecorderState state)
Methoden
Detaillierte Beschreibung
Verwenden Sie das MediaRecorder-Element innerhalb einer CaptureSession, um zu kodieren und aufzunehmen:
- Audio, das von einer Audioschnittstelle (z. B. Mikrofon oder Line-Eingang) aufgenommen wurde.
- Video, das von einer Kamera, einem Bildschirm oder einem Anwendungsfenster aufgenommen wurde.
Die Leistung der Videocodierung und -aufzeichnung wird durch die Hardware, das Betriebssystem, die installierten Grafiktreiber und das Eingangsvideoformat begrenzt. Wenn Camera
, ScreenCapture
oder WindowCapture
Videobilder schneller erzeugt, als MediaRecorder
sie kodieren und aufzeichnen kann, lässt der Rekorder möglicherweise einige Bilder aus. Dies ist wahrscheinlich der Fall, wenn die Eingangsbildauflösung hoch ist, z. B. 4K, und eine hardwarebeschleunigte Kodierung nicht verfügbar ist.
Der folgende Code zeigt eine einfache Aufnahmesitzung mit einem MediaRecorder, der die Standardkamera und den Standard-Audioeingang verwendet.
CaptureSession { id: captureSession camera: Camera { id: camera active: true } audioInput: AudioInput {} recorder: MediaRecorder { id: recorder } }
Der Code unten zeigt, wie die Aufnahme gestartet und gestoppt werden kann.
CameraButton { text: "Record" visible: recorder.recorderState !== MediaRecorder.RecordingState onClicked: recorder.record() } CameraButton { id: stopButton text: "Stop" visible: recorder.recorderState === MediaRecorder.RecordingState onClicked: recorder.stop() }
Siehe auch CaptureSession, Camera, ScreenCapture, WindowCapture, AudioInput, und ImageCapture.
Eigenschaft Dokumentation
actualLocation : url |
Der aktuelle Speicherort des letzten Medieninhalts.
Der aktuelle Speicherort wird zurückgesetzt, wenn ein neuer outputLocation zugewiesen wird. Wenn record() aufgerufen wird, generiert der Rekorder den aktuellen Speicherort auf der Grundlage der folgenden Regeln.
- Wenn
outputLocation
leer, ein Verzeichnis oder eine Datei ohne Erweiterung ist, generiert der Rekorder die entsprechende Erweiterung basierend auf dem ausgewählten Medienformat und den System-MIME-Typen. - Wenn
outputLocation
ein Verzeichnis ist, generiert der Rekorder einen neuen Dateinamen innerhalb dieses Verzeichnisses. - Wenn
outputLocation
leer ist, generiert der Rekorder einen neuen Dateinamen in dem systemspezifischen Verzeichnis für Audio oder Video. - Der Rekorder generiert den aktuellen Speicherort, bevor er
recorderStateChanged(RecordingState)
ausgibt.
audioBitRate : int |
Diese Eigenschaft enthält die Bitrate des komprimierten Audiostroms in Bits pro Sekunde.
Diese Eigenschaft wurde in Qt 6.6 eingeführt.
audioChannelCount : int |
Diese Eigenschaft gibt die Anzahl der Audiokanäle an.
Diese Eigenschaft wurde in Qt 6.6 eingeführt.
audioSampleRate : int |
Diese Eigenschaft enthält die Audio-Samplerate in Hz.
Diese Eigenschaft wurde in Qt 6.6 eingeführt.
duration : qint64 |
Diese Eigenschaft enthält die Dauer der Aufnahme in Millisekunden.
encodingMode : enumeration |
Diese Eigenschaft enthält den Kodierungsmodus.
Diese Eigenschaft wurde in Qt 6.6 eingeführt.
Siehe auch QMediaRecorder::EncodingMode.
error : enumeration |
Diese Eigenschaft enthält den aktuellen Fehlerstatus des Medienrekorders.
Konstante | Beschreibung |
---|---|
MediaRecorder.NoError | Nicht in einem Fehlerzustand. |
MediaRecorder.ResourceError | Nicht genügend Systemressourcen |
MediaRecorder.FormatError | das aktuelle Format wird nicht unterstützt. |
MediaRecorder.OutOfSpaceError | Kein Platz mehr auf dem Gerät. |
MediaRecorder.LocationNotWriteable | Der Ausgabeort ist nicht beschreibbar. |
errorString : string |
Diese Eigenschaft enthält eine Zeichenfolge, die den aktuellen Fehlerzustand beschreibt.
Siehe auch error.
mediaFormat : MediaFormat |
Diese Eigenschaft enthält das aktuelle MediaFormat des Rekorders.
metaData : mediaMetaData |
Diese Eigenschaft enthält die mit der Aufnahme verbundenen Metadaten.
Wenn eine Aufzeichnung gestartet wird, werden alle zugewiesenen Metadaten an diese Aufzeichnung angehängt.
Hinweis: Stellen Sie sicher, dass die Metadaten korrekt zugewiesen sind, indem Sie sie vor dem Start der Aufzeichnung zuweisen.
Siehe auch mediaMetaData.
outputLocation : url |
Der Zielspeicherort von Medieninhalten.
Das Festlegen des Speicherorts kann fehlschlagen, z. B. wenn der Dienst nur lokale Dateisystem-Speicherorte unterstützt, aber eine Netzwerk-URL übergeben wurde. Wenn der Vorgang fehlschlägt, wird ein errorOccured()-Signal ausgegeben.
Der Ausgabeort kann leer, ein Verzeichnis oder eine Datei sein. Der Pfad zu einem Verzeichnis oder einer Datei kann relativ oder absolut sein. Die Methode record() erzeugt den tatsächlichen Speicherort entsprechend dem angegebenen Ausgabeort und den systemspezifischen Einstellungen. Einzelheiten finden Sie in der Beschreibung der Eigenschaft actualLocation.
Siehe auch actualLocation und errorOccurred().
quality : enumeration |
Zählt die Qualitätskodierungsstufen auf.
Konstante | Wert |
---|---|
MediaRecorder.VeryLowQuality | |
MediaRecorder.LowQuality | |
MediaRecorder.NormalQuality | |
MediaRecorder.HighQuality | |
MediaRecorder.VeryHighQuality |
recorderState : enumeration |
Diese Eigenschaft enthält den aktuellen Status des Medienrekorders.
Die Eigenschaft state stellt die Benutzeranforderung dar und wird bei den Aufrufen record(), pause() oder stop() synchron geändert. RecorderSstate kann sich auch asynchron ändern, wenn die Aufzeichnung fehlschlägt.
Konstante | Beschreibung |
---|---|
MediaRecorder.StoppedState | Der Rekorder ist nicht aktiv. |
MediaRecorder.RecordingState | Die Aufzeichnung wird angefordert. |
MediaRecorder.PausedState | Der Rekorder ist pausiert. |
videoBitRate : int |
Diese Eigenschaft enthält die Bitrate des komprimierten Videostroms in Bits pro Sekunde.
Diese Eigenschaft wurde in Qt 6.6 eingeführt.
videoFrameRate : real |
Diese Eigenschaft enthält die Videobildrate.
Ein Wert von 0 zeigt an, dass der Rekorder eine optimale Wahl treffen sollte, basierend auf dem, was von der Videoquelle verfügbar ist und den Einschränkungen des Codecs.
Diese Eigenschaft wurde in Qt 6.6 eingeführt.
videoResolution : Size |
Diese Eigenschaft enthält die Auflösung des kodierten Videos.
Setzen Sie eine leere Größe, um den Rekorder eine optimale Auflösung wählen zu lassen, basierend auf dem, was von der Videoquelle verfügbar ist und den Einschränkungen des Codecs.
Diese Eigenschaft wurde in Qt 6.6 eingeführt.
Signal Dokumentation
actualLocationChanged(const QUrl &location) |
Signalisiert, dass sich die aktuelle location des aufgezeichneten Mediums geändert hat.
Dieses Signal wird normalerweise beim Start der Aufnahme ausgegeben.
Hinweis: Der entsprechende Handler ist onActualLocationChanged
.
durationChanged(qint64 duration) |
Signalisiert, dass sich die duration des aufgenommenen Mediums geändert hat.
Hinweis: Der entsprechende Handler ist onDurationChanged
.
errorOccurred(Error error, const QString &errorString) |
Signalisiert, dass ein error aufgetreten ist.
Die errorString enthält eine Beschreibung des Fehlers.
Hinweis: Der entsprechende Handler ist onErrorOccurred
.
metaDataChanged() |
Signalisiert, dass sich die Metadaten eines Medienobjekts geändert haben.
Wenn mehrere Metadatenelemente geändert werden, wird metaDataChanged() einmal ausgegeben.
Hinweis: Der entsprechende Handler ist onMetaDataChanged
.
recorderStateChanged(RecorderState state) |
Signalisiert, dass sich der state eines Medienrekorders geändert hat.
Hinweis: Der entsprechende Handler ist onRecorderStateChanged
.
Dokumentation der Methode
pause() |
Pausiert die Aufnahme.
Der Status des Rekorders wird auf QMediaRecorder.PausedState geändert.
Je nach Plattform wird das Pausieren der Aufzeichnung möglicherweise nicht unterstützt. In diesem Fall bleibt der Status des Rekorders unverändert.
record() |
Startet die Aufzeichnung.
Während der Rekorderstatus sofort in MediaRecorder.RecordingState
geändert wird, kann die Aufzeichnung asynchron beginnen.
Schlägt die Aufzeichnung fehl, wird das error()-Signal ausgegeben und der Rekorderstatus auf QMediaRecorder.StoppedState
zurückgesetzt.
Diese Methode aktualisiert actualLocation gemäß ihren Erzeugungsregeln.
Hinweis: Auf mobilen Geräten erfolgt die Aufnahme in der Ausrichtung, die das Gerät beim Aufruf von record hatte, und ist für die Dauer der Aufnahme gesperrt. Um Artefakte auf der Benutzeroberfläche zu vermeiden, empfehlen wir, die Benutzeroberfläche für die Dauer der Aufzeichnung mit der Eigenschaft contentOrientation des Fensters in der gleichen Ausrichtung zu sperren und die Sperre wieder aufzuheben, sobald die Aufzeichnung beendet ist.
stop() |
Stoppt die Aufzeichnung.
Der Rekorder stoppt die Aufzeichnung. Die Verarbeitung der anstehenden Video- und Audiodaten kann jedoch noch einige Zeit in Anspruch nehmen. Die Aufnahme ist beendet, wenn der Status des Medienrekorders auf QMediaRecorder::StoppedState wechselt.
© 2025 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.