-1

我正在使用 Qt 5.14.2 运行 QML 应用程序,并注意到我的音效不会播放(生成声音),除非我还播放背景音乐。我已通过控制台记录确认没有错误、有效的音频文件等(11 kbps、16 位 PCM、1 通道、wav)。我也试过41kbps的采样率,没有变化。

我可以使用 Win32 和 Android a8 重现这一点。音频文件是资产文件(不是 QRC)。

示例代码:

SoundEffect {
    id: effect
    source  : "click.wav"
    loops : 1
    volume : 0.8
    muted : false
}

function play() {
    effect.play()
}

在这种情况下,示例代码的问题是简单的示例可能会起作用。首先播放 48k 立体声文件可能会以某种方式弄乱音频播放器 - 找到一个最低限度可重现的示例是不现实的。因此,希望有人知道有关此主题的一般 Qt 问题。我看到可以追溯到 2017 年的帖子有类似的问题,但没有解决方案。

wav 文件应该在不依赖其他 wav 文件/音效播放的情况下播放。

需要注意的是,音效音频文件的长度为 0.477 秒。

4

1 回答 1

0

经过多次试验和错误,我将其缩小到 Qt 音频播放器问题。当音频文件很短(例如:0.5 秒)时,它有时不会作为 SoundEffect 播放。

作为一种解决方案,我在音频文件的末尾附加了 1 秒的静音,现在它可以持续播放。

于 2020-09-24T21:39:21.013 回答