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

目前,我一直在使用敏感:: audioOutput类对象作为一个音频接收器,并将其与我的敏感:: mediaObject类对象连接到播放音频文件。

现在,要绘制波形,我需要知道来自该发射对象的每秒(等)的音频轨道的幅度,以便我可以在不同时间绘制与声频成比例的长度成比例的线路(使用QPainter)因此,获得我的波形。

所以,请帮助我如何在不同时间获取音频轨道的幅度。

其次,我使用的是绘制音频轨道波形的正确方法 - 通过在不同时间的小部件上绘制Qpainter对象绘制线来绘制声音的幅度。

谢谢。

有帮助吗?

解决方案

有些代码是在 Spectrum Analyzer 示例,其中QT船舶(在演示/频谱目录中)。

频谱分析仪演示的屏幕截图在symbian http上运行://labs.trolltech.com/blogs/wp-content/uploads/2010/05/spectrum.png

该演示还计算并显示频谱。当另一个评论者指出时,这与波形图不同:频谱是互频幅度的曲线,而波形块幅度幅度。

演示使用qtmultimedia而不是声子捕获和渲染音频。如果您只对播放音频感兴趣,并且不需要录制它,则声子可能就足够了,但请注意所有平台上都不可用流支持(即Phonon::MediaSource(QIODevice *))。另一方面,对于PCM音频数据,在由QT针对的所有主平台上,至少适用于PCM音频数据,对另一方面的QAudioInputQAudioOutput非常受支持。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top