このページでは

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が渡された場合など、場所の設定は失敗する可能性がある。操作に失敗すると、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.