MediaRecorder QML Type
CaptureSession で生成されたメディアをエンコードし、記録するための ... 詳細
| Import Statement: | import QtMultimedia |
| In C++: | QMediaRecorder |
プロパティ
- 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)
信号
- actualLocationChanged(const QUrl &location)
- durationChanged(qint64 duration)
- errorOccurred(Error error, const QString &errorString)
- metaDataChanged()
- recorderStateChanged(RecorderState state)
方法
詳細説明
CaptureSession 内で MediaRecorder 要素を使用して、エンコードと録音を行います:
- オーディオ・インターフェース(マイクやライン入力など)から取り込んだ音声。
- カメラ、スクリーン、またはアプリケーション・ウィンドウからキャプチャしたビデオ。
ビデオのエンコードと録画のパフォーマンスは、ハードウェア、オペレーティング・システム、インストールされているグラフィック・ドライバ、および入力ビデオ・フォーマットによって制限されます。Camera 、ScreenCapture 、WindowCapture が、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が渡された場合など、場所の設定は失敗する可能性がある。操作に失敗すると、errorOccurred ()シグナルが出力される。
出力場所は、空、ディレクトリ、ファイルのいずれでもよい。ディレクトリやファイルへのパスは、相対パスでも絶対パスでもかまいません。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 。
メソッドのドキュメント
void pause()
録音を一時停止する。
レコーダーの状態は、QMediaRecorder.PausedStateに変更されます。
プラットフォームによっては、録画の一時停止がサポートされていない場合があります。この場合、レコーダーの状態は変更されません。
void record()
録画を開始する。
レコーダーの状態は即座にMediaRecorder.RecordingState に変更されるが、録画は非同期に開始される。
録画に失敗すると、error() シグナルが発せられ、レコーダーの状態はQMediaRecorder.StoppedState にリセットされる。
このメソッドは、生成規則に従ってactualLocation を更新する。
注意: モバイル・デバイスでは、recordを呼び出したときのデバイスの向きで録画が行われ、録画中はロックされます。ユーザーインターフェイス上のアーティファクトを避けるため、WindowのcontentOrientationプロパティを使用して、録画が進行している間はユーザーインターフェイスを同じ向きにロックしておき、録画が終了したら再びロックを解除することをお勧めします。
void stop()
録音を停止します。
レコーダーは録画を停止します。ただし、保留中の映像および音声データの処理には、まだ時間がかかる場合があります。メディアレコーダーの状態がQMediaRecorder::StoppedState に変わると、録画は終了します。
© 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.