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.
软呢帽上的 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.