2016-03-18 10 views
0

オーディオAPIの使用に関するQt Webサイトの例がありますが、まあまあまったく理解できません。Qtを使用してバイトをオーディオ出力に書き込むことはできますか?

私が想像していたのは、いくつかのオーディオバッファに値の配列(バイト、整数など)を書き、サウンドカードにそれらを(実際にはDACで)再生させることです。

擬似コード:

// Square wave? 
const int values[] = {255,255,255,255, 0,0,0,0, 255,255,255,255 ...}; 
// Create output that will buffer the bytes and put them on digi to analog converter 
RawAudioOutput output(BIT_RATE_CONSTANT, ... some other parameters ...); 
output.start(); 
output.writeBytes(values, sizeof(values)); 

が、私はそのような何かを達成することはできますか?私はそれについてどうやって行くのですか?私はAudacityの方形波をモデル化できることを知っています(いいとは言えません)ので、可能でしょう。どうやって?

答えて

1

Qtでは、オーディオバッファに値の配列を書きたい場合、そのクラスはQAudioOutputです。値の配列の形式はさまざまですが、PCM形式はすべてのプラットフォームでサポートされる必要があります。

Qtにはan example that demonstrates the usage of QAudioOutputが付属しています。この例では、Generator::generateData()関数は値の配列を作成し、後でオーディオデバイスに送信します。

もちろん、値の配列からオーディオを再生することはかなり低レベルです。 QMediaPlayerでは、Qtはサウンドファイル(.wav、.mp3)、ビデオファイル、さらにはストリームを再生するための高水準クラスも提供します。

関連する問題