QMediaRecorder Class
Die Klasse „QMediaRecorder“ dient zur Kodierung und Aufzeichnung einer Aufnahmesitzung. Mehr...
| Header: | #include <QMediaRecorder> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Multimedia) target_link_libraries(mytarget PRIVATE Qt6::Multimedia) |
| qmake: | QT += multimedia |
| In QML: | MediaRecorder |
| Erbt von: | QObject |
Öffentliche Typen
| enum | EncodingMode { ConstantQualityEncoding, ConstantBitRateEncoding, AverageBitRateEncoding, TwoPassEncoding } |
| enum | Error { NoError, ResourceError, FormatError, OutOfSpaceError, LocationNotWritable } |
| enum | Quality { VeryLowQuality, LowQuality, NormalQuality, HighQuality, VeryHighQuality } |
| enum | RecorderState { StoppedState, RecordingState, PausedState } |
Eigenschaften
|
|
Öffentliche Funktionen
| QMediaRecorder(QObject *parent = nullptr) | |
| virtual | ~QMediaRecorder() override |
| QUrl | actualLocation() const |
| void | addMetaData(const QMediaMetaData &metaData) |
| int | audioBitRate() const |
| int | audioChannelCount() const |
| int | audioSampleRate() const |
| bool | autoStop() const |
| QMediaCaptureSession * | captureSession() const |
| qint64 | duration() const |
| QMediaRecorder::EncodingMode | encodingMode() const |
| QMediaRecorder::Error | error() const |
| QString | errorString() const |
| bool | isAvailable() const |
| QMediaFormat | mediaFormat() const |
| QMediaMetaData | metaData() const |
| QIODevice * | outputDevice() const |
| QUrl | outputLocation() const |
| QMediaRecorder::Quality | quality() const |
| QMediaRecorder::RecorderState | recorderState() const |
| void | setAudioBitRate(int bitRate) |
| void | setAudioChannelCount(int channels) |
| void | setAudioSampleRate(int sampleRate) |
| void | setAutoStop(bool autoStop) |
| void | setEncodingMode(QMediaRecorder::EncodingMode mode) |
| void | setMediaFormat(const QMediaFormat &format) |
| void | setMetaData(const QMediaMetaData &metaData) |
| void | setOutputDevice(QIODevice *device) |
| void | setOutputLocation(const QUrl &location) |
| void | setQuality(QMediaRecorder::Quality quality) |
| void | setVideoBitRate(int bitRate) |
| void | setVideoFrameRate(qreal frameRate) |
| void | setVideoResolution(const QSize &size) |
| void | setVideoResolution(int width, int height) |
| int | videoBitRate() const |
| qreal | videoFrameRate() const |
| QSize | videoResolution() const |
Öffentliche Slots
Signale
| void | actualLocationChanged(const QUrl &location) |
| void | audioBitRateChanged() |
| void | audioChannelCountChanged() |
| void | audioSampleRateChanged() |
| void | autoStopChanged() |
| void | durationChanged(qint64 duration) |
| void | encodingModeChanged() |
| void | errorChanged() |
| void | errorOccurred(QMediaRecorder::Error error, const QString &errorString) |
| void | mediaFormatChanged() |
| void | metaDataChanged() |
| void | qualityChanged() |
| void | recorderStateChanged(QMediaRecorder::RecorderState state) |
| void | videoBitRateChanged() |
| void | videoFrameRateChanged() |
| void | videoResolutionChanged() |
Ausführliche Beschreibung
Verwenden Sie die Klasse „QMediaRecorder“, um Medien zu kodieren und aufzuzeichnen, die mit „ QMediaCaptureSession “ erzeugt wurden. Sie können Folgendes erzeugen:
- Audio. Verwenden Sie „ QAudioInput “ oder „ QAudioBufferInput “.
- Video. Verwenden Sie „ QCamera “, „ QScreenCapture “, „ QWindowCapture “, „ QVideoFrameInput “ oder „ QGStreamerVideoSource “ (auf Embedded-Linux-Systemen mit dem Medien-Backend „
gstreamer“).
Um Medien aufzuzeichnen, verbinden Sie einen Generator mit einer entsprechenden Medienaufzeichnungssitzung.
Die Leistung bei der Videokodierung und -aufzeichnung wird durch die Hardware, das Betriebssystem, die installierten Grafiktreiber und das Eingabevideoformat begrenzt. Wenn QCamera, QScreenCapture oder QWindowCapture Videobilder schneller erzeugt, als QMediaRecorder sie kodieren und aufzeichnen kann, lässt der Recorder möglicherweise einige Bilder aus. Dies tritt wahrscheinlich auf, wenn die Auflösung der Eingabebilder hoch ist, beispielsweise 4K, und keine hardwarebeschleunigte Codierung verfügbar ist. Wenn Sie Eingabevideos über QVideoFrameInput generieren, führt die Methode QVideoFrameInput::sendVideoFrame keine Aktion aus und gibt false zurück, sobald diese Grenze erreicht ist und die interne Bildwarteschlange voll ist. Verwenden Sie das Signal QVideoFrameInput::readyToSendVideoFrame, um zu erkennen, wann der Recorder wieder bereit ist, neue Bilder zu empfangen. Wenn Sie die Rate der Videobildgenerierung nicht ändern können und das Weglassen von Bildern unerwünscht ist, empfehlen wir, unter Berücksichtigung der Speicherbeschränkungen der Hardware eine eigene Bildwarteschlange auf Basis von QVideoFrameInput zu implementieren.
QMediaCaptureSession session;
QAudioInput audioInput;
session.setAudioInput(&audioInput);
QMediaRecorder recorder;
session.setRecorder(&recorder);
recorder.setQuality(QMediaRecorder::HighQuality);
recorder.setOutputLocation(QUrl::fromLocalFile("test.mp3"));
recorder.record();Dokumentation zum Mitgliedstyp
enum QMediaRecorder::EncodingMode
Zählt die Kodierungsmodi auf.
| Konstante | Wert | Beschreibung |
|---|---|---|
QMediaRecorder::ConstantQualityEncoding | 0 | Die Kodierung zielt auf eine konstante Qualität ab und passt die Bitrate entsprechend an. |
QMediaRecorder::ConstantBitRateEncoding | 1 | Bei der Kodierung wird eine konstante Bitrate verwendet, wobei die Qualität entsprechend angepasst wird. |
QMediaRecorder::AverageBitRateEncoding | 2 | Bei der Kodierung wird versucht, eine durchschnittliche Bitrate beizubehalten, wobei je nach Bedarf mehr oder weniger Bits verwendet werden. |
QMediaRecorder::TwoPassEncoding | 3 | Die Mediendatei wird zunächst verarbeitet, um ihre Eigenschaften zu ermitteln, und anschließend ein zweites Mal verarbeitet, wobei den Bereichen, die es benötigen, mehr Bits zugewiesen werden. |
enum QMediaRecorder::Error
| Konstante | Wert | Beschreibung |
|---|---|---|
QMediaRecorder::NoError | 0 | Keine Fehler. |
QMediaRecorder::ResourceError | 1 | Das Gerät ist nicht bereit oder nicht verfügbar. |
QMediaRecorder::FormatError | 2 | Das aktuelle Format wird nicht unterstützt. |
QMediaRecorder::OutOfSpaceError | 3 | Auf dem Gerät ist kein Speicherplatz mehr vorhanden. |
QMediaRecorder::LocationNotWritable | 4 | Der Speicherort ist nicht beschreibbar. |
enum QMediaRecorder::Quality
Zählt die Qualitätsstufen der Codierung auf.
| Konstante | Wert |
|---|---|
QMediaRecorder::VeryLowQuality | 0 |
QMediaRecorder::LowQuality | 1 |
QMediaRecorder::NormalQuality | 2 |
QMediaRecorder::HighQuality | 3 |
QMediaRecorder::VeryHighQuality | 4 |
enum QMediaRecorder::RecorderState
| Konstante | Wert | Beschreibung |
|---|---|---|
QMediaRecorder::StoppedState | 0 | Der Rekorder ist nicht aktiv. |
QMediaRecorder::RecordingState | 1 | Die Aufzeichnung wird angefordert. |
QMediaRecorder::PausedState | 2 | Der Recorder ist angehalten. |
Eigenschaftsdokumentation
[read-only] actualLocation : QUrl
Diese Eigenschaft enthält die aktuelle Position des letzten Medieninhalts.
Der tatsächliche Speicherort wird zurückgesetzt, wenn ein neuer „ outputLocation “ oder ein von „null“ verschiedener „ outputDevice “ zugewiesen wird. Wenn „ record()“ aufgerufen wird und „ outputDevice “ „ null “ ist oder nicht beschreibbar ist, generiert der Recorder den tatsächlichen Speicherort anhand der folgenden Regeln.
- Ist
outputLocationleer, ein Verzeichnis oder eine Datei ohne Dateiendung, generiert der Recorder die entsprechende Dateiendung basierend auf dem ausgewählten Medienformat und den System-MIME-Typen. - 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.
Zugriffsfunktionen:
| QUrl | actualLocation() const |
Benachrichtigungssignal:
| void | actualLocationChanged(const QUrl &location) |
audioBitRate : int
Diese Eigenschaft enthält die Bitrate des komprimierten Audiostreams in Bit pro Sekunde.
Zugriffsfunktionen:
| int | audioBitRate() const |
| void | setAudioBitRate(int bitRate) |
Benachrichtigungssignal:
| void | audioBitRateChanged() |
audioChannelCount : int
Diese Eigenschaft gibt die Anzahl der Audiokanäle an.
Zugriffsfunktionen:
| int | audioChannelCount() const |
| void | setAudioChannelCount(int channels) |
Benachrichtigungssignal:
| void | audioChannelCountChanged() |
audioSampleRate : int
Diese Eigenschaft enthält die Audio-Abtastrate in Hz.
Zugriffsfunktionen:
| int | audioSampleRate() const |
| void | setAudioSampleRate(int sampleRate) |
Benachrichtigungssignal:
| void | audioSampleRateChanged() |
autoStop : bool
Diese Eigenschaft legt fest, ob der Medienrekorder automatisch stoppt, wenn alle Medieneingänge das Ende des Streams gemeldet haben oder deaktiviert wurden.
Das Ende des Streams wird durch das Senden eines leeren Medienframes gemeldet, den Sie explizit über QVideoFrameInput oder QAudioBufferInput senden können.
Insbesondere die Videoeingänge „ QCamera “, „ QScreenCapture “ und „ QWindowCapture “ können über die Funktion „ setActive “ deaktiviert werden.
Standardmäßig ist false eingestellt.
QMediaRecorder::autoStop wird nur mit dem FFmpeg-Backend unterstützt.
Zugriffsfunktionen:
| bool | autoStop() const |
| void | setAutoStop(bool autoStop) |
Benachrichtigungssignal:
| void | autoStopChanged() |
Siehe auch QCamera, QScreenCapture und QWindowCapture.
[read-only] duration : qint64
Diese Eigenschaft enthält die Dauer der aufgezeichneten Medien in Millisekunden.
Zugriffsfunktionen:
| qint64 | duration() const |
Benachrichtigungssignal:
| void | durationChanged(qint64 duration) |
encodingMode : QMediaRecorder::EncodingMode
Diese Eigenschaft enthält den Kodierungsmodus.
Zugriffsfunktionen:
| QMediaRecorder::EncodingMode | encodingMode() const |
| void | setEncodingMode(QMediaRecorder::EncodingMode mode) |
Benachrichtigungssignal:
| void | encodingModeChanged() |
Siehe auch „ EncodingMode “.
[read-only] error : QMediaRecorder::Error
Gibt den aktuellen Fehlerstatus zurück.
Zugriffsfunktionen:
| QMediaRecorder::Error | error() const |
Benachrichtigungssignal:
| void | errorChanged() |
Siehe auch „ errorString()“.
[read-only] errorString : QString
Gibt eine Zeichenfolge zurück, die den aktuellen Fehlerstatus beschreibt.
Zugriffsfunktionen:
| QString | errorString() const |
Benachrichtigungssignal:
| void | errorChanged() |
Siehe auch ` error()`.
mediaFormat : QMediaFormat
Diese Eigenschaft enthält das aktuelle „ QMediaFormat “ des Recorders.
Der Wert dieser Eigenschaft kann sich beim Aufruf von „ record()“ ändern. In diesem Fall wird das Signal „mediaFormatChanged()“ ausgelöst. Dies geschieht immer dann, wenn die Eigenschaften „ QMediaFormat::audioCodec “ oder „ QMediaFormat::fileFormat “ auf „unspecified“ gesetzt sind. Wenn eine Videoquelle (QCamera, QScreenCapture oder QVideoFrameInput) mit dem „ QMediaCaptureSession “ verbunden ist, muss auch „ QMediaFormat::videoCodec “ angegeben werden. Die Werte der Eigenschaften ` QMediaFormat::audioCodec ` und ` QMediaFormat::videoCodec ` können sich ebenfalls ändern, wenn das Medien-Backend das ausgewählte Dateiformat oder den Codec nicht unterstützt.
Der Wert der Eigenschaft „ QMediaFormat::fileFormat “ kann sich ebenfalls in ein reines audio -Format ändern, wenn ein Videoformat angefordert wurde, aber unter QMediaCaptureSession keine Videoquelle verbunden ist. Wenn beispielsweise „ QMediaFormat::fileFormat “ auf „ QMediaFormat::MPEG4 “ gesetzt ist, kann es zu „ QMediaFormat::Mpeg4Audio “ geändert werden.
Anwendungen können vor Beginn der Aufzeichnung durch Aufruf der Funktion ` QMediaFormat::isSupported()` feststellen, ob sich ` mediaFormat ` ändern wird. Bei einer Aufzeichnung ohne Videoeingänge wird ` record()` nicht auf ` QMediaFormat ` geändert, wenn Folgendes zutrifft:
- QMediaFormat::fileFormat angegeben ist
- QMediaFormat::audioCodec ist angegeben
- QMediaFormat::videoCodec ist nicht angegeben
- QMediaFormat::isSupported() gibt
true
Bei der Aufzeichnung mit Videoeingang wird „ mediaFormat “ nicht geändert, wenn Folgendes zutrifft:
- QMediaFormat::fileFormat ist angegeben
- QMediaFormat::audioCodec ist angegeben
- QMediaFormat::videoCodec ist angegeben
- QMediaFormat::isSupported() gibt Folgendes zurück
true
Hinweis: „ QMediaRecorder “ berücksichtigt bei der Bestimmung von „ QMediaFormat::fileFormat “ nicht die Dateinamenerweiterung aus der Eigenschaft „ outputLocation “ und passt die Erweiterung von „ outputLocation “ QUrl nicht an das ausgewählte Dateiformat an, wenn eine Erweiterung angegeben ist. Anwendungen sollten daher darauf achten, die Eigenschaft „ QMediaRecorder::mediaFormat::fileFormat “ so festzulegen, dass sie mit der Dateiendung übereinstimmt, oder gar keine Dateiendung angeben. Wenn keine Dateiendung angegeben wird, wird die Dateiendung „ actualLocation “ so aktualisiert, dass sie dem für die Aufzeichnung verwendeten Dateiformat entspricht.
Zugriffsfunktionen:
| QMediaFormat | mediaFormat() const |
| void | setMediaFormat(const QMediaFormat &format) |
Benachrichtigungssignal:
| void | mediaFormatChanged() |
Siehe auch „ QMediaFormat::isSupported()“ und „ actualLocation “.
metaData : QMediaMetaData
Gibt die mit der Aufzeichnung verknüpften Metadaten zurück.
Zugriffsfunktionen:
| QMediaMetaData | metaData() const |
| void | setMetaData(const QMediaMetaData &metaData) |
Benachrichtigungssignal:
| void | metaDataChanged() |
outputLocation : QUrl
Diese Eigenschaft enthält den Zielpfad des Medieninhalts.
Das Festlegen 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 Ausgabepfad wird ignoriert, wenn dem Recorder ein beschreibbares „ outputDevice “ zugewiesen wurde. Dieses Verhalten kann sich in Zukunft ändern; daher empfehlen wir, nur einen Ausgabepfad festzulegen, entweder „ outputLocation “ oder „ outputDevice “.
Der Ausgabeort kann leer sein, ein Verzeichnis oder eine Datei. 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 “.
Zugriffsfunktionen:
| QUrl | outputLocation() const |
| void | setOutputLocation(const QUrl &location) |
Siehe auch ` actualLocation ` und ` outputDevice()`.
quality : Quality
Gibt die Aufnahmequalität zurück.
Zugriffsfunktionen:
| QMediaRecorder::Quality | quality() const |
| void | setQuality(QMediaRecorder::Quality quality) |
Benachrichtigungssignal:
| void | qualityChanged() |
[read-only] recorderState : QMediaRecorder::RecorderState
Diese Eigenschaft enthält den aktuellen Zustand des Medienrekorders.
Die Eigenschaft „state“ repräsentiert die Benutzeranforderung und wird bei Aufrufen von „ record()“, „ pause()“ oder „ stop()“ synchron geändert. Der Zustand des Rekorders kann sich auch asynchron ändern, wenn die Aufnahme fehlschlägt.
Zugriffsfunktionen:
| QMediaRecorder::RecorderState | recorderState() const |
Benachrichtigungssignal:
| void | recorderStateChanged(QMediaRecorder::RecorderState state) |
[since 6.6] videoBitRate : int
Diese Eigenschaft enthält die Bitrate des komprimierten Videostreams in Bit pro Sekunde.
Diese Enumeration wurde in Qt 6.6 eingeführt.
Zugriffsfunktionen:
| int | videoBitRate() const |
| void | setVideoBitRate(int bitRate) |
Notifier-Signal:
| void | videoBitRateChanged() |
[since 6.6] videoFrameRate : qreal
Diese Eigenschaft enthält die bei der Codierung verwendete Bildrate des Videos.
Wenn diese Eigenschaft auf eine positive Bildrate gesetzt ist, versucht „ QMediaRecorder “, 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 „ QMediaRecorder “, anhand der Videoquelle und der Codec-Einschränkungen die optimale Wahl zu treffen.
Diese Enumeration wurde in Qt 6.6 eingeführt.
Zugriffsfunktionen:
| qreal | videoFrameRate() const |
| void | setVideoFrameRate(qreal frameRate) |
Notifier-Signal:
| void | videoFrameRateChanged() |
[since 6.6] videoResolution : QSize
Diese Eigenschaft gibt die Auflösung des kodierten Videos an.
Ein leerer Wert für „ QSize “ bedeutet, dass der Recorder eine optimale Auflösung wählt, basierend auf den von der Videoquelle verfügbaren Optionen und den Einschränkungen des Codecs.
Diese Enumeration wurde in Qt 6.6 eingeführt.
Zugriffsfunktionen:
| QSize | videoResolution() const |
| void | setVideoResolution(const QSize &size) |
| void | setVideoResolution(int width, int height) |
Notifier-Signal:
| void | videoResolutionChanged() |
Dokumentation der Mitgliedsfunktionen
QMediaRecorder::QMediaRecorder(QObject *parent = nullptr)
Erstellt einen Medienrekorder. Der Medienrekorder ist ein untergeordnetes Element von „ parent “.
[override virtual noexcept] QMediaRecorder::~QMediaRecorder()
Löscht ein Medienrekorder-Objekt.
[signal] void QMediaRecorder::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 ausgesendet.
Hinweis: Benachrichtigungssignal für die Eigenschaft „ actualLocation “.
void QMediaRecorder::addMetaData(const QMediaMetaData &metaData)
Fügt „ metaData “ zu den aufgezeichneten Medien hinzu.
int QMediaRecorder::audioBitRate() const
Gibt die Bitrate des komprimierten Audiostreams in Bit pro Sekunde zurück.
Hinweis: Getter -Funktion für die Eigenschaft „audioBitRate“.
Siehe auch „ setAudioBitRate()“.
[signal] void QMediaRecorder::audioBitRateChanged()
Gibt ein Signal aus, wenn sich die Audio-Bitrate der Aufnahme ändert.
Hinweis: Benachrichtigungssignal für die Eigenschaft „ audioBitRate “.
int QMediaRecorder::audioChannelCount() const
Gibt die Anzahl der Audiokanäle zurück.
Hinweis: Getter -Funktion für die Eigenschaft „audioChannelCount“.
Siehe auch „ setAudioChannelCount()“.
[signal] void QMediaRecorder::audioChannelCountChanged()
Gibt ein Signal aus, wenn sich die Anzahl der Audiokanäle für die Aufnahme ändert.
Hinweis: Benachrichtigungssignal für die Eigenschaft „ audioChannelCount “.
int QMediaRecorder::audioSampleRate() const
Gibt die Audio-Abtastrate in Hz zurück.
Hinweis: Getter -Funktion für die Eigenschaft „audioSampleRate“.
Siehe auch „ setAudioSampleRate()“.
[signal] void QMediaRecorder::audioSampleRateChanged()
Gibt ein Signal aus, wenn sich die Abtastrate der Audioaufnahme ändert.
Hinweis: Benachrichtigungssignal für die Eigenschaft „ audioSampleRate “.
QMediaCaptureSession *QMediaRecorder::captureSession() const
Gibt die Medienaufzeichnungssitzung zurück.
[signal] void QMediaRecorder::durationChanged(qint64 duration)
Zeigt an, dass sich die duration der aufgezeichneten Medien geändert hat.
Hinweis: Benachrichtigungssignal für die Eigenschaft „ duration “.
QMediaRecorder::EncodingMode QMediaRecorder::encodingMode() const
Gibt den Kodierungsmodus zurück.
Hinweis: Getter -Funktion für die Eigenschaft `encodingMode`.
Siehe auch ` setEncodingMode()` und ` EncodingMode`.
[signal] void QMediaRecorder::encodingModeChanged()
Gibt ein Signal aus, wenn sich der Kodierungsmodus ändert.
Hinweis: Benachrichtigungssignal für die Eigenschaft „ encodingMode “.
[signal] void QMediaRecorder::errorOccurred(QMediaRecorder::Error error, const QString &errorString)
Zeigt an, dass ein „ error “ aufgetreten ist, wobei „ errorString “ eine Beschreibung des Fehlers enthält.
bool QMediaRecorder::isAvailable() const
Gibt „ true “ zurück, wenn der Medienaufzeichnungsdienst einsatzbereit ist.
[signal] void QMediaRecorder::metaDataChanged()
Signalisiert, dass sich die Metadaten eines Medienobjekts geändert haben.
Wenn mehrere Metadatenelemente geändert werden, wird „metaDataChanged()“ einmal ausgelöst.
Hinweis: Notifier -Signal für die Eigenschaft „ metaData “.
QIODevice *QMediaRecorder::outputDevice() const
Gibt das Ausgabe-E/A-Gerät für Medieninhalte zurück.
Siehe auch setOutputDevice().
[slot] void QMediaRecorder::pause()
Hält die Aufnahme an.
Der Status des Recorders wird auf „ QMediaRecorder::PausedState “ geändert.
Je nach Plattform wird das Anhalten der Aufzeichnung möglicherweise nicht unterstützt. In diesem Fall bleibt der Status des Rekorders unverändert.
[signal] void QMediaRecorder::qualityChanged()
Gibt ein Signal aus, wenn sich die Aufnahmequalität ändert.
Hinweis: Notifier -Signal für die Eigenschaft „ quality “.
[slot] void QMediaRecorder::record()
Die Aufzeichnung wird gestartet.
Während der Status des Recorders sofort auf c{QMediaRecorder::RecordingState} geändert wird, kann die Aufzeichnung asynchron beginnen.
Wenn die Aufzeichnung fehlschlägt, wird das Signal „ error()“ ausgelöst, wobei der Status des Rekorders auf „ QMediaRecorder::StoppedState “ zurückgesetzt wird.
Diese Methode aktualisiert „ actualLocation “ gemäß den Regeln für dessen Erzeugung.
Hinweis: Auf Mobilgeräten erfolgt die Aufzeichnung in der Ausrichtung, die das Gerät zum Zeitpunkt des Aufrufs von `record` hatte, und diese wird für die Dauer der Aufzeichnung gesperrt. Um Artefakte auf der Benutzeroberfläche zu vermeiden, empfehlen wir, die Benutzeroberfläche mithilfe der Eigenschaft `contentOrientation` von ` QWindow ` für die Dauer der Aufzeichnung in derselben Ausrichtung zu sperren und sie nach Beendigung der Aufzeichnung wieder zu entsperren.
QMediaRecorder::RecorderState QMediaRecorder::recorderState() const
Gibt den aktuellen Status des Medienrekorders zurück.
Hinweis: Getter -Funktion für die Eigenschaft „recorderState“.
Siehe auch „ QMediaRecorder::RecorderState “.
[signal] void QMediaRecorder::recorderStateChanged(QMediaRecorder::RecorderState state)
Signalisiert, dass sich die Eigenschaft „ state “ eines Medienrekorders geändert hat.
Hinweis: Benachrichtigungssignal für die Eigenschaft „ recorderState “.
void QMediaRecorder::setAudioBitRate(int bitRate)
Legt die Audio bitRate en in Bit pro Sekunde fest.
Hinweis: Setter -Funktion für die Eigenschaft ` audioBitRate`.
Siehe auch ` audioBitRate()`.
void QMediaRecorder::setAudioChannelCount(int channels)
Legt die Anzahl der Audio channels fest.
Der Wert -1 bedeutet, dass der Recorder eine optimale Auswahl treffen soll, basierend auf den von der Audioquelle verfügbaren Daten und den Einschränkungen des Codecs.
Hinweis: Setter -Funktion für die Eigenschaft ` audioChannelCount`.
Siehe auch ` audioChannelCount()`.
void QMediaRecorder::setAudioSampleRate(int sampleRate)
Legt die Audio- sampleRate e in Hz fest.
Der Wert „ -1 “ bedeutet, dass der Recorder eine optimale Auswahl treffen soll, basierend auf den von der Audioquelle verfügbaren Daten und den Einschränkungen des Codecs.
Hinweis: Setter -Funktion für die Eigenschaft „ audioSampleRate “.
Siehe auch audioSampleRate().
void QMediaRecorder::setEncodingMode(QMediaRecorder::EncodingMode mode)
Legt die Einstellung „encoding mode “ fest.
Wenn „ ConstantQualityEncoding “ gesetzt ist, wird der Qualitätsparameter für die Kodierung verwendet und die Bitraten werden ignoriert; andernfalls werden die Bitraten verwendet.
Hinweis: Setter -Funktion für die Eigenschaft „ encodingMode “.
Siehe auch „ encodingMode()“ und „ EncodingMode “.
void QMediaRecorder::setMetaData(const QMediaMetaData &metaData)
Setzt die Metadaten auf „ metaData “.
Hinweis: Um sicherzustellen, dass die Metadaten korrekt gesetzt werden, sollten sie vor Beginn der Aufzeichnung festgelegt werden. Sobald die Aufzeichnung gestartet ist, werden alle festgelegten Metadaten der nächsten Aufzeichnung zugeordnet.
Hinweis: Setter -Funktion für die Eigenschaft „ metaData “.
Siehe auch ` metaData()`.
void QMediaRecorder::setOutputDevice(QIODevice *device)
Legen Sie das Ausgabe-E/A-Gerät für Medieninhalte fest.
Die Datei „ device “ muss vor Beginn der Aufzeichnung im Modus „ WriteOnly “ oder „ ReadWrite “ geöffnet worden sein.
Der Medienrekorder übernimmt nicht die Kontrolle über das angegebene „ device “. Wenn die Aufnahme gestartet wurde, muss das Gerät aktiv und geöffnet bleiben, bis das Signal „ recorderStateChanged(StoppedState) “ gesendet wird.
Diese Methode setzt „ actualLocation “ sofort zurück, es sei denn, der angegebene „ device “ lautet „ null “.
Wenn dem Recorder ein beschreibbares Ausgabegerät zugewiesen ist, wird „ outputLocation “ ignoriert, und „ actualLocation “ wird beim Start der Aufnahme nicht generiert. Dieses Verhalten kann sich in Zukunft ändern, daher empfehlen wir, nur eine Ausgabe festzulegen, entweder „ outputLocation “ oder „ outputDevice “.
QMediaRecorder::setOutputDevice wird nur vom FFmpeg-Backend unterstützt.
Siehe auch outputDevice() und outputLocation.
void QMediaRecorder::setVideoBitRate(int bitRate)
Legt die Video bitRate in Bit pro Sekunde fest.
Hinweis: Setter -Funktion für die Eigenschaft „ videoBitRate “.
Siehe auch ` videoBitRate()`.
void QMediaRecorder::setVideoFrameRate(qreal frameRate)
Legt die Videokodierungs frameRate fest.
Hinweis: Setter -Funktion für die Eigenschaft ` videoFrameRate`.
Siehe auch ` videoFrameRate()`.
void QMediaRecorder::setVideoResolution(const QSize &size)
Legt die Auflösung des kodierten Videos auf „ size “ fest.
Übergeben Sie ein leeres ` QSize `, damit der Recorder anhand der von der Videoquelle verfügbaren Optionen und der Einschränkungen des Codecs eine optimale Auflösung auswählt.
Hinweis: Setter -Funktion für die Eigenschaft ` videoResolution`.
Siehe auch ` videoResolution()`.
void QMediaRecorder::setVideoResolution(int width, int height)
Legt die Werte für „ width “ und „ height “ der Auflösung des kodierten Videos fest.
Hinweis: Setter -Funktion für die Eigenschaft „ videoResolution “.
Dies ist eine überladene Funktion.
[slot] void QMediaRecorder::stop()
Der Recorder beendet die Aufnahme. Die Verarbeitung der noch ausstehenden Video- und Audiodaten kann jedoch noch einige Zeit in Anspruch nehmen. Die Aufnahme ist abgeschlossen, sobald sich der Status des Medienrekorders in „ QMediaRecorder::StoppedState “ ändert.
int QMediaRecorder::videoBitRate() const
Gibt die Bitrate des komprimierten Videostreams in Bit pro Sekunde zurück.
Hinweis: Getter -Funktion für die Eigenschaft „videoBitRate“.
Siehe auch „ setVideoBitRate()“.
[signal] void QMediaRecorder::videoBitRateChanged()
Gibt ein Signal aus, wenn sich die Bitrate der Videoaufnahme ändert.
Hinweis: Benachrichtigungssignal für die Eigenschaft „ videoBitRate “.
qreal QMediaRecorder::videoFrameRate() const
Gibt die Bildrate der Videokodierung zurück.
Hinweis: Getter -Funktion für die Eigenschaft „videoFrameRate“.
Siehe auch „ setVideoFrameRate()“.
[signal] void QMediaRecorder::videoFrameRateChanged()
Gibt ein Signal aus, wenn sich die Bildrate der Videokodierung ändert.
Hinweis: Benachrichtigungssignal für die Eigenschaft „ videoFrameRate “.
QSize QMediaRecorder::videoResolution() const
Gibt die Auflösung des kodierten Videos zurück.
Hinweis: Getter -Funktion für die Eigenschaft „videoResolution“.
Siehe auch „ setVideoResolution()“.
[signal] void QMediaRecorder::videoResolutionChanged()
Gibt ein Signal aus, wenn sich die Auflösung der Videoaufzeichnung ändert.
Hinweis: Benachrichtigungssignal für die Eigenschaft „ videoResolution “.
© 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.