我尽力为C ++ / Visual Studio中的以下需求找到解决方案:
这很简单:为了发出警报,我必须连续循环播放文件中的许多wav声音,每个声音之间都有短暂的延迟:
声音1 ...声音2 ...声音n ...声音1 ...声音2 ...
任何时候都应该可以取消这种声音序列。
我尝试和<div class="holder">
<span id="change1"></span>
<span id="change2"></span>
<span id="change3"></span>
<div class="image-holder">
<img src="https://picsum.photos/400/400?image=1040" class="slider-image" >
<img src="https://picsum.photos/400/400?image=1041" class="slider-image" >
<img src="https://picsum.photos/400/400?image=1042" class="slider-image" >
</div>
<div class="button-holder">
<a href="#change1" class="button"></a>
<a href="#change2" class="button"></a>
<a href="#change3" class="button"></a>
</div>
</div>
一起玩,但是问题是,声音一旦运行就无法正确停止。
https://msdn.microsoft.com/en-us/library/Dd743680(v=VS.85).aspx
通过标志异步播放声音时,可以通过为参数1指定NULL来停止声音,但是我不知道在sound-2开始之前声音1何时结束。 。实际上,启动声音2会中断声音1。
在同步模式下,无法中断声音。
为了能够取消声音,我尝试将PlaySound放入PlaySound()
,但是如何取消线程?没有预料到要取消线程...使用Poco::Thread
instaed可以在取消时提供Poco::Task
,因此也不起作用。
那是首选的解决方案? 有更好的解决方案吗?
谢谢!
答案 0 :(得分:0)
它们都是WAV文件,您知道它们会持续多久。当您开始播放sound1
时,请存储结束时间。无需猜测。