我第一次尝试将SoundEffect与QML一起使用时,我得到了混合的结果,但不清楚为什么。我可以在嵌入式C++设备的用户界面中成功地使用QML SoundEffect。我无法解决的问题是为什么有些WAV文件可以播放得非常清晰,而有些则不行。
我确信我的代码是正确的...它是关于如何解释音频的东西。我不能共享我正在使用的WAV文件...但下面是发生的事情:
我有两个WAV文件:
wav_file1_that_works.wav(该文件为83 kb)
和
wav_file2_that_does_not_work. wav(文件大小为110 kb)
这两个文件在VLC或媒体播放器或其他设备中播放都很好。但是当通过QML功能运行以作为设备上触摸的反馈播放时,第一个WAV文件播放得很好,而第二个没有。它似乎不是硬件问题,因为在虚拟环境中工作时出现的同样的问题完全相同。我我怀疑在QT/QML环境中使用WAV音频有什么限制?但是我在文档中找不到任何限制。我唯一怀疑的是文件大小,或者其他一些特定的声音文件要求。
首先声明文件的声音链接:
SoundEffect {
id: playSound
source: "qrc:/wav_file2_that_does_not work.wav"
}
然后在UI事件上播放它(不是确切的代码,但事件的工作方式肯定是这样的:
MyUiItem {
onMyUiTouched: {
playSound.play();
}
}
文件1播放得很好,文件2播放得很好,但声音非常失真。
我可能对WAV文件编码的工作原理了解不够,但从表面上看,这两个文件似乎都编码正确。
1条答案
按热度按时间rqcrx0a61#
我通过重构应用程序在压缩WAV文件时的编译方式解决了这个问题。不幸的是,我发现如果我让我的企业部署系统做它的事情,它会压缩所有内容,包括所有多媒体,除非我应用某些参数不压缩。现在这个方法成功了。谢谢你的帮助。