【问题标题】:How to start/stop wav-sounds under C++ Windows 7如何在 C++ Windows 7 下启动/停止 wav 声音
【发布时间】:2018-09-04 15:28:52
【问题描述】:

我努力在 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来停止它,但是在sound-2开始之前我不知道sound-1什么时候结束.事实上,启动 sound-2 会中断 sound-1。

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

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

对此的首选解决方案是什么? 有没有更好的解决方案?

谢谢!

【问题讨论】:

    标签: c++ windows multithreading audio poco


    【解决方案1】:

    它们都是 WAV 文件,你知道它们能保存多久。当您开始播放sound1 时,请存储结束时间。无需猜测。

    【讨论】:

      猜你喜欢
      • 2011-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-29
      • 1970-01-01
      • 2012-11-07
      • 1970-01-01
      相关资源
      最近更新 更多