オーディオレコーダーの例
使用可能なデバイスとサポートされているコーデックの検出
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));
©2024 The Qt Company Ltd. 本書に含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。