c++ - 如何用 C++ 绘制音频文件的振幅?

标签 c++ qt audio plot amplitude

我正在尝试使用 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/

相关文章:

audio - 在 Tizen 中播放带有通知的音频文件

javascript - 在 JavaScript 中播放流式音频

c++ - 在 Sound 实际完成之前触发 OnSoundFinished

c++ - 扩展宏进行调试?

c++ - QT 在 QGraphicsitem 上绘制矩形

visual-studio - 如何使用 qmake 创建 vcproj 使其过滤器反射(reflect)目录结构?

c++ - QMediaPlayer 在 QtCreator 外部启动时无法在 Windows 上开始播放

c++ - 获取旋转顶点的当前顶点位置

android - JNI "Optimization"值得吗?

python - 如何在 Coverity Scan 中忽略生成的 cpp 文件(来自 swig/python)?