我对以下代码片段有疑问...
`bytesReady()` 方法给我返回一个特定数量的字节,然后我将这些字节数传递给 `QIODevice` 的 `read()` 方法,该方法会返回读取的字节数。
问题在于 `bytesRead` 不等于 `bytesToRead`。而且我从 `read()` 方法中获取的字节数是固定的,即 320、640、960、1280 等,这取决于 `bytesToRead`。
const qint64 bytesReady = m_audioInput->bytesReady();
const qint64 bytesSpace = m_buffer.size() - m_dataLength;
const qint64 bytesToRead = qMin(bytesReady, bytesSpace);
const qint64 bytesRead = m_audioInputIODevice->read(m_buffer.data() + m_dataLength, bytesToRead);
`bytesReady()` 方法给我返回一个特定数量的字节,然后我将这些字节数传递给 `QIODevice` 的 `read()` 方法,该方法会返回读取的字节数。
问题在于 `bytesRead` 不等于 `bytesToRead`。而且我从 `read()` 方法中获取的字节数是固定的,即 320、640、960、1280 等,这取决于 `bytesToRead`。
while(bytesReady = m_audioInput->bytesReady() >0 ){...}
并告诉我发生了什么?你是如何初始化使用的 QAudioFormat 的?你确定QAudioDeviceInfo::isFormatSupported()
返回 true 吗? - UmNyobebytesSpace > bytesReady
,对吗? - Chris Browet