QT の QAudioInput クラスの bufferSize() と bytesReady() の関係を理解しようとしています。私が持っていると仮定します:
m_audioInput = new QAudioInput(m_Inputdevice, m_format, this);
bs = m_audioInput->bufferSize();
br = m_audioInput->bytesReady();
と の値を見るbs
と(これらはデフォルト値であり、バッファ サイズは変更していません)、 の5 倍の大きbr
さであることがわかります。つまり、5 ブロックのオーディオ入力データを保持するバッファーがあるように見えます。私の質問:bs
br
これは循環バッファですか? 私がこれらを持っている場合:
m_input = m_audioInput->start();
connect(m_input, SIGNAL(readyRead()), SLOT(myFunc()));
次に、読み取りを実行すると:
MainClass::myFunc()
{
qint64 l = m_input->read(m_buffer.data(), br);
.
.
}
- バッファから循環的に読み取りますか? つまり、a が発行された後に read を 2 回実行する
readyRead()
と、バッファー ポインターは 1 ブロックから 2 番目のブロックに移動します (合計で 5 ブロックの場合)。 - バッファポインタに関するドキュメントはありますか?それが循環バッファであるかどうかなど?
- バッファへの自動読み取りおよび書き込みポインタはありますか? それらを処理する必要がありますか、それとも自動的に処理されていますか?
これに関連するヘルプとポインタは非常に高く評価されています。