MediaRecorder QML Type
Für die Kodierung und Aufzeichnung von Medien, die in einem „ CaptureSession “ erstellt wurden. 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
Ausführliche Beschreibung
Verwenden Sie das MediaRecorder-Element innerhalb eines „ CaptureSession “, um Folgendes zu kodieren und aufzunehmen:
- Audio, das über eine Audioschnittstelle (z. B. Mikrofon oder Line-Eingang) erfasst wird.
- Videoaufnahmen von einer Kamera, dem Bildschirm oder einem Anwendungsfenster.
Die Leistung bei der Videokodierung und -aufzeichnung wird durch die Hardware, das Betriebssystem, die installierten Grafiktreiber und das Eingabevideoformat begrenzt. Wenn „ Camera “, „ ScreenCapture “ oder „ WindowCapture “ Videobilder schneller erzeugt, als „ MediaRecorder “ diese kodieren und aufzeichnen kann, kann es vorkommen, dass der Recorder einige Bilder auslässt. Dies tritt wahrscheinlich auf, wenn die Auflösung der Eingabebilder hoch ist, beispielsweise 4K, und keine hardwarebeschleunigte Kodierung verfügbar ist.
Der folgende Code zeigt eine einfache Aufnahmesitzung mit einem MediaRecorder, der die Standardkamera und den Standardaudioeingang verwendet.
CaptureSession {
id: captureSession
camera: Camera {
id: camera
active: true
}
audioInput: AudioInput {}
recorder: MediaRecorder {
id: recorder
}
}Der folgende Code 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.
Dokumentation zu Eigenschaften
actualLocation : url [read-only]
Der aktuelle Speicherort des letzten Medieninhalts.
Der tatsächliche Speicherort wird zurückgesetzt, wenn ein neuer „ outputLocation “ zugewiesen wird. Beim Aufruf von „ record()“ generiert der Recorder den tatsächlichen Speicherort anhand der folgenden Regeln.
- Ist `
outputLocation` leer, ein Verzeichnis oder eine Datei ohne Dateiendung, generiert der Recorder die entsprechende Dateiendung basierend auf dem ausgewählten Medienformat und den MIME-Typen des Systems. - Ist `
outputLocation` ein Verzeichnis, generiert der Recorder darin einen neuen Dateinamen. - Ist `
outputLocation` leer, generiert der Recorder einen neuen Dateinamen im systemspezifischen Verzeichnis für Audio oder Video. - Der Recorder ermittelt den tatsächlichen Speicherort, bevor er „
recorderStateChanged(RecordingState)“ ausgibt.
audioBitRate : int [since 6.6]
Diese Eigenschaft gibt die Bitrate des komprimierten Audiostreams in Bit pro Sekunde an.
Diese Eigenschaft wurde in Qt 6.6 eingeführt.
audioChannelCount : int [since 6.6]
Diese Eigenschaft gibt die Anzahl der Audiokanäle an.
Diese Eigenschaft wurde in Qt 6.6 eingeführt.
audioSampleRate : int [since 6.6]
Diese Eigenschaft enthält die Audio-Abtastrate in Hz.
Diese Eigenschaft wurde in Qt 6.6 eingeführt.
duration : qint64 [read-only]
Diese Eigenschaft enthält die Dauer der aufgezeichneten Medien in Millisekunden.
encodingMode : enumeration [since 6.6]
Diese Eigenschaft enthält den Kodierungsmodus.
Diese Eigenschaft wurde in Qt 6.6 eingeführt.
Siehe auch QMediaRecorder::EncodingMode.
error : enumeration [read-only]
Diese Eigenschaft enthält den aktuellen Fehlerstatus des Medienrekorders.
| Konstante | Beschreibung |
|---|---|
MediaRecorder.NoError | Befindet sich nicht im Fehlerzustand. |
MediaRecorder.ResourceError | Nicht genügend Systemressourcen |
MediaRecorder.FormatError | Das aktuelle Format wird nicht unterstützt. |
MediaRecorder.OutOfSpaceError | Kein Speicherplatz mehr auf dem Gerät. |
MediaRecorder.LocationNotWriteable | Der Speicherort ist nicht beschreibbar. |
errorString : string [read-only]
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 Metadaten, die mit der Aufzeichnung verknüpft sind.
Wenn eine Aufzeichnung gestartet wird, werden alle zugewiesenen Metadaten dieser Aufzeichnung hinzugefügt.
Hinweis: Stellen Sie sicher , dass die Metadaten korrekt zugewiesen sind, indem Sie sie vor Beginn der Aufzeichnung zuweisen.
Siehe auch mediaMetaData.
outputLocation : url
Der Zielspeicherort von Medieninhalten.
Die Festlegung des Speicherorts kann fehlschlagen, beispielsweise wenn der Dienst nur Speicherorte im lokalen Dateisystem unterstützt, aber eine Netzwerk-URL übergeben wurde. Wenn der Vorgang fehlschlägt, wird das Signal „ errorOccurred()“ ausgelöst.
Der Ausgabeort kann leer sein, ein Verzeichnis oder eine Datei darstellen. Der Pfad zu einem Verzeichnis oder einer Datei kann relativ oder absolut sein. Die Methode ` record()` generiert den tatsächlichen Speicherort entsprechend dem angegebenen Ausgabeort und den systemspezifischen Einstellungen. Weitere Informationen finden Sie in der Beschreibung der Eigenschaft ` actualLocation `.
Siehe auch „ actualLocation “ und „ errorOccurred()“.
quality : enumeration
Zählt die Qualitätsstufen der Kodierung auf.
| Konstante | Wert |
|---|---|
MediaRecorder.VeryLowQuality | |
MediaRecorder.LowQuality | |
MediaRecorder.NormalQuality | |
MediaRecorder.HighQuality | |
MediaRecorder.VeryHighQuality |
recorderState : enumeration [read-only]
Diese Eigenschaft enthält den aktuellen Status des Medienrekorders.
Die Eigenschaft „state“ repräsentiert die Benutzeranforderung und wird bei Aufrufen von „ record()“, „ pause()“ oder „ stop()“ synchron geändert. „RecorderState“ kann sich auch asynchron ändern, wenn die Aufzeichnung fehlschlägt.
| Konstante | Beschreibung |
|---|---|
MediaRecorder.StoppedState | Der Recorder ist nicht aktiv. |
MediaRecorder.RecordingState | Die Aufnahme wird angefordert. |
MediaRecorder.PausedState | Der Recorder ist angehalten. |
videoBitRate : int [since 6.6]
Diese Eigenschaft enthält die Bitrate des komprimierten Videostreams in Bit pro Sekunde.
Diese Eigenschaft wurde in Qt 6.6 eingeführt.
videoFrameRate : real [since 6.6]
Diese Eigenschaft enthält die bei der Codierung verwendete Videobildrate.
Wenn diese Eigenschaft auf eine positive Bildrate gesetzt ist, versucht „ MediaRecorder “, mit dieser Bildrate zu kodieren. Wenn die Bildraten der Videoquelle und des Kodierers unterschiedlich sind, können Bilder aus der Quelle ausgelassen oder dupliziert werden, um die Zielbildrate zu erreichen.
Wird der Standardwert (-1) beibehalten oder ein anderer nicht-positiver Wert festgelegt, versucht „ MediaRecorder “, anhand der Videoquelle und der Codec-Einschränkungen die optimale Wahl zu treffen.
Diese Eigenschaft wurde in Qt 6.6 eingeführt.
videoResolution : Size [since 6.6]
Diese Eigenschaft gibt die Auflösung des kodierten Videos an.
Legen Sie einen leeren Wert für „Size“ fest, damit der Recorder anhand der von der Videoquelle verfügbaren Daten und der Einschränkungen des Codecs eine optimale Auflösung auswählt.
Diese Eigenschaft wurde in Qt 6.6 eingeführt.
Signal-Dokumentation
actualLocationChanged(const QUrl &location)
Zeigt an, dass sich die tatsächliche „ location “ des aufgezeichneten Mediums geändert hat.
Dieses Signal wird in der Regel zu Beginn der Aufzeichnung ausgegeben.
Hinweis: Der entsprechende Handler ist „ onActualLocationChanged “.
durationChanged(qint64 duration)
Zeigt an, dass sich die duration der aufgezeichneten Medien geändert hat.
Hinweis: Der entsprechende Handler ist „ onDurationChanged “.
errorOccurred(Error error, const QString &errorString)
Zeigt an, 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 ausgelöst.
Hinweis: Der entsprechende Handler lautet ` onMetaDataChanged`.
recorderStateChanged(RecorderState state)
Signalisiert, dass sich die „ state “ eines Medienrekorders geändert hat.
Hinweis: Der entsprechende Handler ist „ onRecorderStateChanged “.
Methodendokumentation
void pause()
Hält die Aufnahme an.
Der Status des Recorders wird auf „ QMediaRecorder.PausedState“ gesetzt.
Je nach Plattform wird das Anhalten der Aufzeichnung möglicherweise nicht unterstützt. In diesem Fall bleibt der Status des Rekorders unverändert.
void record()
Die Aufzeichnung wird gestartet.
Obwohl der Zustand des Recorders sofort auf „ MediaRecorder.RecordingState “ gesetzt wird, kann die Aufzeichnung asynchron beginnen.
Wenn die Aufzeichnung fehlschlägt, wird das Signal `error()` ausgelöst und der Zustand des Recorders wird auf ` QMediaRecorder.StoppedState` zurückgesetzt.
Diese Methode aktualisiert „ actualLocation “ gemäß den dafür geltenden Regeln.
Hinweis: Auf Mobilgeräten erfolgt die Aufzeichnung in der Ausrichtung, die das Gerät beim Aufruf von „record“ hatte, und diese wird für die Dauer der Aufzeichnung gesperrt. Um Artefakte in der Benutzeroberfläche zu vermeiden, empfehlen wir, die Benutzeroberfläche mithilfe der Eigenschaft „contentOrientation“ des Fensters für die Dauer der Aufzeichnung in derselben Ausrichtung zu fixieren und sie nach Beendigung der Aufzeichnung wieder zu entsperren.
void stop()
Beendet die Aufnahme.
Der Recorder beendet die Aufnahme. Die Verarbeitung noch ausstehender Video- und Audiodaten kann jedoch noch einige Zeit in Anspruch nehmen. Die Aufnahme ist beendet, sobald sich der Status des Medienrecorders auf „ QMediaRecorder::StoppedState “ ändert.
© 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.