MediaRecorder QML Type
CaptureSession で生成されたメディアをエンコードし、記録するための ... 詳細
Import Statement: | import QtMultimedia |
In C++: | QMediaRecorder |
プロパティ
- actualLocation : QUrl
- 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 : QUrl
- 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 : QUrl |
最後のメディアコンテンツの実際の場所。
実際の位置は通常、録画開始後に取得可能であり、新しい位置が設定されるか、新しい録画が開始されるとリセットされる。
audioBitRate : int |
このプロパティは、圧縮オーディオストリームのビットレートをビット毎秒で保持します。
このプロパティは Qt 6.6 で導入されました。
audioChannelCount : int |
このプロパティは、オーディオチャンネル数を保持します。
このプロパティは Qt 6.6 で導入されました。
audioSampleRate : int |
このプロパティは、オーディオのサンプルレートを Hz 単位で保持します。
このプロパティは Qt 6.6 で導入されました。
duration : qint64 |
このプロパティは、記録されたメディアの継続時間をミリ秒単位で保持します。
encodingMode : enumeration |
error : enumeration |
このプロパティは、現在のメディア・レコーダーのエラー状態を保持します。
定数 | 説明 |
---|---|
MediaRecorder.NoError | エラー状態ではない。 |
MediaRecorder.ResourceError | システムリソースが不足しています。 |
MediaRecorder.FormatError | 現在のフォーマットがサポートされていない。 |
MediaRecorder.OutOfSpaceError | デバイスに空き容量がない。 |
MediaRecorder.LocationNotWriteable | 出力場所が書き込み可能でない。 |
mediaFormat : MediaFormat |
このプロパティは、レコーダーの現在の MediaFormat を保持します。
metaData : mediaMetaData |
このプロパティは、録画に関連するメタデータを保持する。
録画が開始されると、割り当てられたメタデータがその録画に添付されます。
メモ: 録画を開始する前にメタデータを割り当てて、メタデータが正しく割り当てられていることを確認してください。
mediaMetaDataも参照 。
outputLocation : QUrl |
メディアコンテンツの保存先。
たとえば、サービスがローカルのファイルシステムの場所のみをサポートしているにもかかわらず、ネットワークURLが渡された場合など、場所の設定に失敗することがあります。操作に失敗すると、errorOccured() シグナルが発行される。
場所は、相対でも空でもかまいません。空の場合、レコーダーはシステム固有の場所とファイル名スキームを使用します。
errorOccurred()も参照 。
quality : enumeration |
品質エンコーディングレベルを列挙する。
定数 | 値 |
---|---|
MediaRecorder.VeryLowQuality | |
MediaRecorder.LowQuality | |
MediaRecorder.NormalQuality | |
MediaRecorder.HighQuality | |
MediaRecorder.VeryHighQuality |
recorderState : enumeration |
videoBitRate : int |
このプロパティは、圧縮ビデオストリームのビットレートをビット/秒で保持します。
このプロパティは Qt 6.6 で導入されました。
videoFrameRate : real |
このプロパティは、ビデオフレームレートを保持します。
値が 0 の場合、レコーダーは、ビデオソースから利用可能なものとコーデックの制限に基づいて最適な選択を行う必要があることを示します。
このプロパティは Qt 6.6 で導入されました。
videoResolution : Size |
このプロパティは、エンコードされたビデオの解像度を保持します。
空の 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
にリセットされる。
注: モバイル・デバイスでは、録音はrecordを呼び出したときのデバイスの向きで行われ、録音中はロックされる。ユーザーインターフェイスのアーチファクトを避けるために、WindowのcontentOrientationプロパティを使用して、録画が進行している間、ユーザーインターフェイスを同じ向きにロックしておき、録画が終了したら、再びロックを解除することをお勧めします。
stop() |
録画を停止します。
レコーダーは録画を停止します。しかし、保留中のビデオおよびオーディオ データの処理にはまだ時間がかかる場合があります。メディア レコーダーの状態がQMediaRecorder::StoppedState に変わると、録画は終了します。
本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。