如何在C ++ Windows 7下启动/停止wav-sounds

问题描述 投票:0回答:1

我努力在C ++ / Visual Studio下找到满足以下要求的解决方案:

这很简单:出于警报的目的,我必须在无限循环中按顺序播放文件中的多个wav声音,每个声音由短暂的延迟分隔:

sound-1 ... sound-2 ... sound-n ... sound-1 ... sound-2 ...

在任何时候都应该可以取消这一系列的声音。

我试着玩PlaySound(),但问题是,一旦它们运行我就无法正常停止声音。

https://msdn.microsoft.com/en-us/library/Dd743680(v=VS.85).aspx

当通过标志异步播放声音时,可以通过为参数1指定NULL来停止声音,但是在声音-2启动之前我无法知道声音1何时结束。实际上,启动声音-2会中断声音-1。

然而,在同步模式中,不可能中断声音。

为了能够取消声音,我试图将PlaySound放入Poco::Thread,但如何取消线程?取消一个线程是没有预见的...使用Poco::Task instaed取消时会给出一个unhandled exception at 0x01002d62 ...,所以它也不起作用。

什么是首选解决方案?有更好的解决方案吗?

谢谢!

c++ windows multithreading audio poco
1个回答
0
投票

它们都是WAV文件,你知道它们持续多久。当你开始玩sound1时,请存储它将结束的时间。没有必要猜测。

© www.soinside.com 2019 - 2024. All rights reserved.