QIODevice::为麦克风写入数据

QIODevice::writeData for microphone

本文关键字:数据 麦克风 QIODevice      更新时间:2023-10-16

qt5.7在fedora 上

检查了这个音频到图表的例子,发现QIODevice::writeData用于读取麦克风输入。由于它可以工作,并且正在绘制来自麦克风的数据,因此该功能显然不是写入数据,而是读取数据。但QIODevicece文档页面明确指出:

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

将数据中最多maxSize个字节写入设备。返回写入的字节数,如果发生错误,则返回-1。

所以我的问题是为什么/如何工作?

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

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

CCD_ 4由CCD_ 5调用以将数据写入图表。

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模式下打开。