我正在尝试使用 Qt (c++) 创建一个程序,当我使用 QAudiooutput 播放音频文件(.wav、.mp3)时,它可以绘制振幅信号(绘制像 audacity 但动态波形)
和 QIODevice
。
我所做的:
使用 QAudioouput
我可以播放任何音频文件,使用 qwtplot 我可以绘制任何二维信号,在这种情况下,x 轴将是时间y 轴将是振幅。
现在,我的问题是如何获得每一秒(时间)的振幅?
如有任何帮助,我们将不胜感激。
最佳答案
音频的正常、未压缩表示只是其作为时间函数的振幅。 .wav
文件通常是未压缩的,因此单声道 .WAV
文件实际上是最简单的音频文件:只是一个标题,后面跟着一系列振幅。
请注意,数字音频具有采样率。例如。 32 kHz 采样率意味着您的 WAV 文件每秒有 32000 个振幅。如果它只有一个,你就听不到了! (<20 赫兹)。您可以在 Audacity 中看到这一点;您可以将波形放大很多。
关于c++ - 如何用 C++ 绘制音频文件的振幅?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24993808/