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 : QUrl [read-only]

最後のメディアコンテンツの実際の場所。

実際の位置は通常、録画開始後に取得可能であり、新しい位置が設定されるか、新しい録画が開始されるとリセットされる。


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 : QUrl

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

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

場所は、相対でも空でもかまいません。空の場合、レコーダーはシステム固有の場所とファイル名スキームを使用します。

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 にリセットされる。

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


stop()

録画を停止します。

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


本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。