QIODevice::writeData 麦克风

QIODevice::writeData for microphone

软呢帽上的 qt5.7

检查了这个 audio-to-chart example 发现 QIODevice::writeData 用于读取麦克风输入。由于它有效并且正在绘制来自麦克风的数据,因此该功能显然不是在写入而是在读取数据。但 QIODevice 文档页面明确指出:

[pure virtual protected] qint64 QIODevice::writeData(const char *data,
qint64 maxSize) 

Writes up to maxSize bytes from data to the device. Returns the number of bytes written, or -1 if an error occurred.

所以我的问题是 why/how 这行得通吗?

查看代码,唯一的QIODevice是负责绘制数据的XYSeriesIODevice

您还有一个 QAudioInput 用于从麦克风读取。

XYSeriesIODevice::writeData()QAudioInput 调用以将数据写入图表。

m_audioInput = new QAudioInput(inputDevices,formatAudio, this);

m_device = new XYSeriesIODevice(m_series, this);
m_device->open(QIODevice::WriteOnly);

m_audioInput->start(m_device);

void QAudioInput::start(QIODevice *device)

Starts transferring audio data from the system's audio input to the device. The device must have been opened in the WriteOnly, Append or ReadWrite modes.