Qt 如何检查QSound能否成功播放声音

Qt 如何检查QSound能否成功播放声音,qt,audio,Qt,Audio,有没有办法检查QSound::play()是否成功?这意味着,该文件已找到,格式有效,并且QSound已设法开始播放该文件 这一点尤其重要,因为QSound无法播放所有类型的格式、采样率等 一种方法是启动声音,并在很短的延迟后检查isFinished(),但它只适用于循环声音 有什么更好的方法吗?似乎没有任何方法可以检查QSound。Qt文档说明: QSound类提供了播放.wav声音文件的方法 所以格式必须是.wav,但我认为如果它无效,它就不能播放 但是,您可以尝试改用QSoundEffec

有没有办法检查
QSound::play()
是否成功?这意味着,该文件已找到,格式有效,并且QSound已设法开始播放该文件

这一点尤其重要,因为QSound无法播放所有类型的格式、采样率等

一种方法是启动声音,并在很短的延迟后检查
isFinished()
,但它只适用于循环声音


有什么更好的方法吗?

似乎没有任何方法可以检查QSound。Qt文档说明:

QSound类提供了播放.wav声音文件的方法

所以格式必须是.wav,但我认为如果它无效,它就不能播放

但是,您可以尝试改用QSoundEffect类。将源设置为QUrl路径,然后可以调用函数status(),查看它是否正确加载。如果格式不正确,可能会返回错误,但您必须尝试并查看


如果这仍然不起作用,那么就有QMediaPlayer,尽管它启动播放的速度可能不如QSoundEffect快,但它可以报告各种错误,例如FormatError、ResourceError、NetworkError等。

似乎没有任何方法来检查QSound。Qt文档说明:

QSound类提供了播放.wav声音文件的方法

所以格式必须是.wav,但我认为如果它无效,它就不能播放

但是,您可以尝试改用QSoundEffect类。将源设置为QUrl路径,然后可以调用函数status(),查看它是否正确加载。如果格式不正确,可能会返回错误,但您必须尝试并查看

如果这仍然不起作用,则会出现QMediaPlayer,尽管它可能无法像QSoundEffect那样快速开始播放,但可以报告各种错误,例如FormatError、ResourceError、NetworkError等