MediaRecorder QML Type

CaptureSession で生成されたメディアをエンコードし、記録するための ... 詳細

Import Statement: import QtMultimedia
In C++: QMediaRecorder

プロパティ

信号

方法

詳細説明

CaptureSession 内で MediaRecorder 要素を使用して、エンコードと録音を行います:

  • オーディオ・インターフェース(マイクやライン入力など)から取り込んだ音声。
  • カメラ、スクリーン、またはアプリケーション・ウィンドウからキャプチャしたビデオ。

ビデオのエンコードと録画のパフォーマンスは、ハードウェア、オペレーティング・システム、インストールされているグラフィック・ドライバ、および入力ビデオ・フォーマットによって制限されます。CameraScreenCaptureWindowCapture が、MediaRecorder がエンコードおよび録画できる速度よりも速くビデオフレームを生成する場合、レコーダーはいくつかのフレームをドロップすることがあります。これは、入力フレームの解像度が4Kなど高解像度で、ハードウェアによる高速エンコーディングが利用できない場合に発生する可能性があります。

以下のコードは、デフォルトのカメラとデフォルトのオーディオ入力を使用した、MediaRecorderを含むシンプルなキャプチャセッションを示しています。

CaptureSession {
    id: captureSession
    camera: Camera {
        id: camera
        active: true
    }
    audioInput: AudioInput {}
    recorder: MediaRecorder {
        id: recorder
    }
}

以下のコードでは、録画を開始および停止する方法を示しています。

CameraButton {
    text: "Record"
    visible: recorder.recorderState !== MediaRecorder.RecordingState
    onClicked: recorder.record()
}

CameraButton {
    id: stopButton
    text: "Stop"
    visible: recorder.recorderState === MediaRecorder.RecordingState
    onClicked: recorder.stop()
}

CaptureSession,Camera,ScreenCapture,WindowCapture,AudioInput,ImageCaptureも参照して ください。

プロパティ・ドキュメント

actualLocation : url [read-only]

最後のメディアコンテンツの実際の位置。

新しいoutputLocation が割り当てられると、実際の場所はリセットされる。record() が呼び出されると、レコーダは以下の規則に基づいて実際の場所を生成する。

  • outputLocation が空、ディレクトリ、または拡張子のないファイルの場合、レコーダーは、選択されたメディア・フォーマットとシステムのMIMEタイプに基づいて、適切な拡張子を生成する。
  • outputLocation がディレクトリの場合、レコーダーはその中に新しいファイル名を生成する。
  • outputLocation が空の場合、レコーダーはオーディオまたはビデオ用のシステム固有ディレクトリに新しいファイル名を生成します。
  • レコーダは、recorderStateChanged(RecordingState) を発する前に、実際の場所を生成する。

audioBitRate : int [since 6.6]

このプロパティは、圧縮オーディオストリームのビットレートをビット/秒で保持します。

このプロパティは Qt 6.6 で導入されました。


audioChannelCount : int [since 6.6]

このプロパティは、オーディオチャンネル数を保持します。

このプロパティは Qt 6.6 で導入されました。


audioSampleRate : int [since 6.6]

このプロパティは、オーディオのサンプルレートを Hz 単位で保持します。

このプロパティは Qt 6.6 で導入されました。


duration : qint64 [read-only]

このプロパティは、記録されたメディアの継続時間をミリ秒単位で保持します。


encodingMode : enumeration [since 6.6]

このプロパティは、エンコーディングモードを保持します。

このプロパティは Qt 6.6 で導入されました。

QMediaRecorder::EncodingModeも参照してください


error : enumeration [read-only]

このプロパティは、現在のメディア・レコーダーのエラー状態を保持します。

定数説明
MediaRecorder.NoErrorエラー状態ではない。
MediaRecorder.ResourceErrorシステムリソースが不足しています。
MediaRecorder.FormatError現在のフォーマットがサポートされていない。
MediaRecorder.OutOfSpaceErrorデバイスに空き容量がない。
MediaRecorder.LocationNotWriteable出力場所が書き込み可能でない。

errorString : string [read-only]

このプロパティは、現在のエラー状態を表す文字列を保持する。

errorも参照


mediaFormat : MediaFormat

このプロパティは、レコーダーの現在の MediaFormat を保持します。


metaData : mediaMetaData

このプロパティは、録画に関連するメタデータを保持する。

録画が開始されると、割り当てられたメタデータがその録画に添付されます。

メモ: 録画を開始する前にメタデータを割り当てて、メタデータが正しく割り当てられていることを確認してください。

mediaMetaDataも参照


outputLocation : url

メディアコンテンツの保存先。

たとえば、サービスがローカルのファイルシステムの場所のみをサポートしているにもかかわらず、ネットワークURLが渡された場合など、場所の設定に失敗することがあります。操作に失敗すると、errorOccured() シグナルが発行される。

出力場所は、空でも、ディレクトリでも、ファイルでもかまいません。ディレクトリやファイルへのパスは、相対パスでも絶対パスでもかまいません。record() メソッドは、指定された出力場所とシステム固有の設定に従って実際の場所を生成します。詳細は、actualLocation プロパティの説明を参照してください。

actualLocation およびerrorOccurred()も参照して ください。


quality : enumeration

品質エンコード・レベルを列挙します。

定数
MediaRecorder.VeryLowQuality
MediaRecorder.LowQuality
MediaRecorder.NormalQuality
MediaRecorder.HighQuality
MediaRecorder.VeryHighQuality

recorderState : enumeration [read-only]

このプロパティは、現在のメディアレコーダの状態を保持する。

stateプロパティは、ユーザー要求を表し、record ()、pause ()またはstop ()呼び出し中に同期的に変更される。RecorderSstateは、録画が失敗したときに非同期に変更されることもある。

定数説明
MediaRecorder.StoppedStateレコーダーはアクティブではない。
MediaRecorder.RecordingState録画が要求されている。
MediaRecorder.PausedStateレコーダーは一時停止している。

videoBitRate : int [since 6.6]

このプロパティは、圧縮ビデオストリームのビットレートをビット/秒で保持します。

このプロパティは Qt 6.6 で導入されました。


videoFrameRate : real [since 6.6]

このプロパティは、ビデオフレームレートを保持します。

値が 0 の場合、レコーダーは、ビデオソースから利用可能なものとコーデックの制限に基づいて最適な選択を行う必要があることを示します。

このプロパティは Qt 6.6 で導入されました。


videoResolution : Size [since 6.6]

このプロパティは、エンコードされたビデオの解像度を保持します。

空の Size を設定すると、レコーダーは、ビデオ ソースから利用可能なものとコーデックの制限に基づいて最適な解像度を選択します。

このプロパティは Qt 6.6 で導入されました。


Signal ドキュメンテーション

actualLocationChanged(const QUrl &location)

記録されたメディアの実際のlocation が変更されたことを示します。

このシグナルは通常、録画開始時に発行されます。

注意: 対応するハンドラはonActualLocationChanged です。


durationChanged(qint64 duration)

記録メディアのduration が変更されたことを知らせる。

:対応するハンドラはonDurationChanged


errorOccurred(Error error, const QString &errorString)

error が発生したことを知らせる。

errorString にはエラーの説明が含まれる。

注: 対応するハンドラはonErrorOccurred


metaDataChanged()

メディアオブジェクトのメタデータが変更されたことを知らせる。

複数のメタデータ要素が変更された場合、 metaDataChanged()は一度だけ発行される。

注: 対応するハンドラは、onMetaDataChanged


recorderStateChanged(RecorderState state)

メディアレコーダーのstate が変更されたことを示す。

:対応するハンドラはonRecorderStateChanged


メソッドの説明

pause()

録画を一時停止する。

レコーダーの状態はQMediaRecorder.PausedStateに変更される。

プラットフォームによっては、録画の一時停止がサポートされていない場合があります。この場合、レコーダーの状態は変更されません。


record()

録画を開始します。

レコーダーの状態はすぐにMediaRecorder.RecordingState に変更されるが、録画は非同期に開始される。

録画に失敗すると、error() シグナルが発せられ、レコーダーの状態はQMediaRecorder.StoppedState にリセットされる。

このメソッドは、生成規則に従ってactualLocation を更新する。

注意: モバイル・デバイスでは、recordを呼び出したときのデバイスの向きで録画が行われ、録画中はロックされます。ユーザー インターフェイス上のアーティファクトを避けるため、WindowのcontentOrientationプロパティを使用して、録画が進行している間はユーザー インターフェイスを同じ向きにロックしたままにし、録画が終了したら再びロックを解除することをお勧めします。


stop()

録画を停止します。

レコーダーは録画を停止します。しかし、保留中のビデオおよびオーディオ データの処理にはまだ時間がかかる場合があります。メディア レコーダーの状態がQMediaRecorder::StoppedState に変わると、録画は終了します。


© 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.