1

Qtを使ってオーディオエディタを開発したいです。このために、私は音楽トラックの波形をプロットする必要があります。これは、時間に対する音のピーク振幅のプロットであると思います(間違っている場合は修正してください)。

現在、Phonon :: AudioOutputクラスオブジェクトをオーディオシンクとして使用しており、Phonon::MediaObjectクラスオブジェクトに接続してオーディオファイルを再生しています。

ここで、波形を描画するには、このAudioOutputオブジェクトから1秒ごと(またはそれ以上)のオーディオトラックの振幅を知る必要があります。これにより、さまざまな時間のサウンド周波数に比例する長さの線を(QPainterを使用して)描画できます。私の波形を取得します。

それで、異なる時間にオーディオトラックの振幅を取得する方法について私を助けてください。

次に、オーディオトラックの波形をプロットする正しい方法を使用していますか?異なる時間にウィジェット上のQPainterオブジェクトによって線をプロットすることにより、時間に対して音の振幅をプロットします。

ありがとう。

4

1 に答える 1

2

Qtに付属しているSpectrumAnalyzerの例(デモ/スペクトルディレクトリ)には、質問の両方(ピーク振幅の計算とオーディオ波形のプロット)を実行するコードがあります。

Symbianで実行されているSpectrumAnalyzerデモのスクリーンショットhttp://labs.trolltech.com/blogs/wp-content/uploads/2010/05/spectrum.png

このデモでは、周波数スペクトルも計算して表示します。別のコメント提供者が指摘しているように、これは波形プロットとは異なります。スペクトルは周波数に対する振幅のプロットですが、波形は時間に対する振幅をプロットします。

デモでは、フォノンではなくQtMultimediaを使用してオーディオをキャプチャおよびレンダリングします。オーディオの再生のみに関心があり、録音する必要がない場合は、フォノンで十分かもしれませんが、ストリーミングサポート(つまりPhonon::MediaSource(QIODevice *))がすべてのプラットフォームで利用できるわけではないことに注意してください。 一方、Qtが対象とするすべてのメインプラットフォームでは、少なくともPCMオーディオデータについては十分にサポートされていますQAudioInputQAudioOutput

于 2010-08-12T15:59:35.927 に答える