【问题标题】:Can I write bytes into audio output using Qt?我可以使用 Qt 将字节写入音频输出吗?
【发布时间】:2016-03-18 22:54:38
【问题描述】:

Qt 网站上有关于使用音频 API 的示例,但坦率地说,我完全不了解。

我的设想是将值数组(字节、整数...)写入某个音频缓冲区并让声卡“播放”它们(实际上是 DAC)。

伪代码:

// Square wave?
const int values[] = {255,255,255,255, 0,0,0,0, 255,255,255,255 ...};
// Create output that will buffer the bytes and put them on digi to analog converter
RawAudioOutput output(BIT_RATE_CONSTANT, ... some other parameters ...);
output.start();
output.writeBytes(values, sizeof(values));

我可以完成这样的事情吗?我该怎么办?我知道我可以在 Audacity 中模拟方波(听起来不太好),所以我想这是可能的。怎么样?

【问题讨论】:

    标签: c++ qt audio


    【解决方案1】:

    在 Qt 中,如果您想将值数组写入音频缓冲区,则该类为 QAudioOutput。值数组的格式可以变化,PCM 格式应该是所有平台都支持的。

    Qt 附带an example that demonstrates the usage of QAudioOutput,看看那个。在示例中,Generator::generateData() 函数创建值数组,然后将其发送到音频设备。

    当然,从一组值中播放音频是非常低级的。通过QMediaPlayer,Qt 还提供了一个高级类来播放声音文件(.wav、.mp3)、视频文件甚至流。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-19
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-31
      相关资源
      最近更新 更多