繁体   English   中英

带有 QML SoundEffect 音频播放失真的 WAV 文件

[英]WAV file with QML SoundEffect audio playback is distorted

我的第一个 go 在将 SoundEffect 与 QML 结合使用时,我得到的结果好坏参半,但我不清楚为什么。 我可以在嵌入式 C++ 设备的用户界面中成功使用 QML SoundEffect。 我无法解决的问题是为什么有些 WAV 文件播放起来非常清晰,而有些则不能。

我确定我的代码是正确的......它与音频的解释方式有关。 我无法共享我正在使用的 WAV 文件......但这是正在发生的事情:

我有两个 WAV 文件:

wav_file1_that_works.wav(83kb)

wav_file2_that_does_not work.wav(110kb)

这两个文件在 VLC 或 Media Player 或其他软件中都可以正常播放。 但是当通过 QML function 播放作为设备触摸反馈时,第一个 WAV 文件播放得很好,而第二个则没有。 这似乎不是硬件问题,因为在虚拟环境中工作时,同样的问题会完全相同。 我怀疑在 QT/QML 环境中使用 WAV 音频有一些限制? 但我在文档中找不到任何限制。 我唯一的怀疑是文件大小,或其他一些特定的声音文件要求。

首先我声明文件的声音链接:

SoundEffect {
        id: playSound
        source: "qrc:/wav_file2_that_does_not work.wav"
    } 

然后在 UI 事件上播放它(不是确切的代码,但该事件肯定是这样工作的:

MyUiItem {
     
        onMyUiTouched: {
         
            playSound.play();
        }
    }

文件 1 播放完美,文件 2 播放,但声音非常失真。

我可能不太了解 WAV 文件编码的工作原理,但从表面上看,这两个文件似乎都已正确编码。

当我的 WAV 文件被压缩时,我通过重构应用程序的编译方式解决了这个问题。 所以不幸的是,这是我发现的,如果我让我的企业部署系统做它的事情,它会压缩所有内容,包括所有多媒体,除非我应用某些参数不压缩。 所以现在这行得通了。 谢谢您的帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM