题
我想使用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音频数据,对另一方面的QAudioInput
和QAudioOutput
非常受支持。
不隶属于 StackOverflow