オーディオレコーダーの例
使用可能なデバイスとサポートされているコーデックの検出
Audio Recorderは、利用可能なデバイスとサポートされているコーデックを識別する方法と、QAudioRecorder クラスの使用方法を示します。
例の実行
からサンプルを実行するには Qt Creatorからサンプルを実行するには、Welcome モードを開き、Examples からサンプルを選択します。詳細については、Building and Running an Exampleを参照してください。
ウィンドウとオーディオ設定の表示
適切なオーディオ入力、コーデック、コンテナ、サンプルレート、チャンネルを選択するためのウィンドウ を表示します。品質やビットレートも設定できます。最後に、出力ファイルを選択し、録音を開始することができます。
リストは以下の方法で入力されます:
- QMediaDevices::audioInputs()
- QMediaFormat::supportedAudioCodecs
- QMediaFormat::supportedFileFormats
- QAudioDevice::maximumSampleRate()
- QAudioDevice::minimumSampleRate()
品質スライダーは0(ゼロ)からQMediaRecorder::VeryHighQuality (デフォルト値QMediaRecorder::NormalQuality )まで設定でき、ビットレートボックスはリストにハードコードされています。
オーディオの録音
オーディオを録音するには、QAudioRecorderオブジェクトを作成します、
audioRecorder = new QAudioRecorder(this);
を作成し、上記のようにリストをセットアップします。録音ボタンと一時停止ボタンのテキストは、audioRecorder
オブジェクトのstate によって切り替わります。つまり、状態がQMediaRecorder::StoppedState の場合、ボタンのテキストは "Record "と "Pause "になります。QMediaRecorder::RecordingState 、記録ボタンには "Stop "というテキストが表示され、QMediaRecorder::PausedState 、一時停止ボタンには "Resume "というテキストが表示されます。
ボタンを押すと、状態に応じてトグルも行われる。録画が停止している場合、録画ボタンを押すと、audioRecorder
オブジェクトにエンコード設定とコンテナが設定され、record() メソッドを使って録画が開始されます。
QMediaFormat format; format.setCodec(boxValue(ui->audioCodecBox).toString()); audioRecorder->setMediaFormat(format); audioRecorder->setSampleRate(boxValue(ui->sampleRateBox).toInt()); audioRecorder->setBitRate(boxValue(ui->bitrateBox).toInt()); audioRecorder->setQuality(QMediaRecorder::EncodingQuality(ui->qualitySlider->value())); audioRecorder->setEncodingMode(ui->constantQualityRadioButton->isChecked() ? QMediaRecorder::ConstantQualityEncoding : QMediaRecorder::ConstantBitRateEncoding); QString container = boxValue(ui->containerBox).toString(); audioRecorder->record();
録画中、アプリケーションのステータスバーは、audioRecorder
オブジェクトからのdurationChanged シグナルによる継続時間情報で更新されます。
ui->statusbar->showMessage(tr("Recorded %1 sec").arg(duration / 1000));
© 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.