麦克风

时间:2017-01-19 10:37:48

标签: c++ qt io

在fedora上

qt5.7

选中此audio-to-chart example并发现QIODevice :: writeData用于读取麦克风输入。由于它的工作原理和来自麦克风的数据正在被绘制,因此该功能显然不是写入而是读取数据。但QIODevice文档页明确指出:

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

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

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

1 个答案:

答案 0 :(得分:1)

查看代码时,唯一的QIODeviceXYSeriesIODevice,负责绘制数据。

您还可以通过麦克风阅读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模式下打开。