1

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

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

一个技巧是启动声音,并在很短的延迟检查之后isFinished(),但它只适用于循环声音。

有没有更好的办法?

4

1 回答 1

1

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

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

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

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

如果还是不行,那就有QMediaPlayer,虽然它开始播放可能没有QSoundEffect那么快,但是会报各种错误,比如FormatError、ResourceError、NetworkError等。

于 2013-08-09T08:12:47.063 回答