qt5.7
选中此audio-to-chart example并发现QIODevice :: writeData用于读取麦克风输入。由于它的工作原理和来自麦克风的数据正在被绘制,因此该功能显然不是写入而是读取数据。但QIODevice文档页明确指出:
[pure virtual protected] qint64 QIODevice::writeData(const char *data, qint64 maxSize)
将数据中的maxSize字节写入设备。 返回写入的字节数,如果发生错误,则返回-1。
所以我的问题是为什么/如何运作?
答案 0 :(得分:1)
查看代码时,唯一的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)
开始传输音频 来自系统的音频输入到设备的数据。该设备必须具备 已在WriteOnly,Append或ReadWrite模式下打开。