我试图了解 QT 中 QAudioInput 类的 bufferSize() 和 bytesReady() 之间的关系。假设我有:
m_audioInput = new QAudioInput(m_Inputdevice, m_format, this);
bs = m_audioInput->bufferSize();
br = m_audioInput->bytesReady();
当我查看bs
and的值br
(这些是默认值并且我没有更改缓冲区大小)时,我看到它bs
比br
. 所以看起来有一个缓冲区可以保存 5 个音频输入数据块。我的问题:
这是一个循环缓冲区吗?如果我有这些:
m_input = m_audioInput->start();
connect(m_input, SIGNAL(readyRead()), SLOT(myFunc()));
然后当我执行读取时:
MainClass::myFunc()
{
qint64 l = m_input->read(m_buffer.data(), br);
.
.
}
- 它是否以循环方式从缓冲区读取?即,如果我在发出 a 之后执行读取 2 次
readyRead()
,缓冲区指针是否从 1 个块移动到第二个块(如果它总共有 5 个块)? - 是否有关于缓冲区指针的文档,如果它是循环缓冲区等?
- 是否有指向缓冲区的自动读写指针?我需要照顾那些,还是自动得到照顾?
非常感谢与此相关的任何帮助和指针。