除非播放背景音乐,否则QML没有声音效果的音频

问题描述

我正在使用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秒。

解决方法

经过反复试验,我将其范围缩小到Qt音频播放器问题。当音频文件很短时(例如:0.5秒),有时它不能作为SoundEffect播放。

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