代码之家  ›  专栏  ›  技术社区  ›  Vijay Kansal

音轨振幅

  •  1
  • Vijay Kansal  · 技术社区  · 14 年前

    我想开发一个音频编辑器使用Qt。 为此,我需要绘制一个波形的音乐曲目,我认为这应该是一个绘图的峰值振幅的声音与时间(请纠正我,如果我错了)。

    现在,为了绘制波形,我需要从这个AudioOutput对象中知道每秒钟音频轨迹的振幅,这样我就可以绘制一条长度与不同时间的声音频率成比例的线(使用QPainter),从而获得我的波形。

    所以,请帮助我如何在不同的时间获得音轨的振幅。

    第二,我是否使用了绘制音频轨迹波形的正确方法—通过在不同时间通过小部件上的QPainter对象绘制线来绘制声音振幅与时间的关系。

    谢谢。

    1 回复  |  直到 14 年前
        1
  •  2
  •   Gareth Stockwell    14 年前

    这里有一个代码,它可以完成你所要做的两件事(计算峰值振幅和绘制音频波形) Spectrum Analyzer Qt附带的示例(在demos/spectrum目录中)。

    Screenshot of Spectrum Analyzer demo running on Symbian http://labs.trolltech.com/blogs/wp-content/uploads/2010/05/spectrum.png

    这个演示还计算并显示频谱。另一位评论者指出,这与波形图不同:频谱是振幅与频率的关系图,而波形是振幅与时间的关系图。

    演示使用多媒体而不是声子来捕捉和呈现音频。如果您只对播放音频感兴趣,而不需要录制,那么声子可能就足够了,但请注意流媒体支持(即。 Phonon::MediaSource(QIODevice *) )并非在所有平台上都可用。 QAudioInput QAudioOutput 另一方面,在Qt所针对的所有主平台上,至少对PCM音频数据有很好的支持。

    推荐文章