我正在处理一个每200毫秒接收一个事件的程序,我想根据最后一个声音播放结束时收到的最后一个事件发出声音。 不幸的是,isFinished()函数不能在窗口上处理非环状声音。
所以我试图找到一种方法,等到声音播放完毕后再播放上一次事件中的另一个(比如只有一个元素的LIFO)。
我设法做到了:
QSound *sound[5];
int select, lastSelect;
if(sound[lastSelect]->loopsRemaining() >=1)
sound[lastSelect]->stop();
else {
sound[select]->setLoops(2);
sound[select]->play();
lastSelect = select;
}
但它排队的声音并不是我想要的 否则我可以通过将循环次数设置为2来完成它,但它在播放下一个之前播放声音两次。
你知道怎么做吗?