有没有办法检查QSound::play()
是否成功?这意味着,找到了文件,它是有效的格式,QSound设法开始播放它。
这一点尤其重要,因为QSound无法播放所有类型的格式,采样率等。
黑客会启动声音,经过很短的延迟检查isFinished()
,但它只适用于循环声音。
还有更好的方法吗?
答案 0 :(得分:1)
似乎没有任何方法可以检查QSound。 Qt docs表示:
QSound类提供了一种播放 .wav 声音文件的方法
因此格式必须是.wav,但我认为如果它无效则无法播放。
但是,您可以尝试使用QSoundEffect类。您使用QUrl路径设置源,然后您可以调用函数status()以查看它是否正确加载。如果格式不正确,可能会返回Error,但您必须尝试并查看。
如果仍然不起作用,那就是QMediaPlayer,虽然它可能无法像QSoundEffect那样快地开始播放,但可以报告各种错误,例如FormatError,ResourceError,NetworkError等。