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

时间:2013-08-09 04:31:23

标签: qt audio

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

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

黑客会启动声音,经过很短的延迟检查isFinished(),但它只适用于循环声音。

还有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

似乎没有任何方法可以检查QSound。 Qt docs表示:

  

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

因此格式必须是.wav,但我认为如果它无效则无法播放。

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

如果仍然不起作用,那就是QMediaPlayer,虽然它可能无法像QSoundEffect那样快地开始播放,但可以报告各种错误,例如FormatError,ResourceError,NetworkError等。