我需要播放几种声音,如果一个声音已播放,后续声音将排队。 我正在使用MCI API调用。
到目前为止,我已将此声音播放器用作InterOp的COM控件。
但是,COM控件会导致一些COM Release错误,所以我想以不同的方式解决它。
我想知道我是否应该使用后台任务通过我的表单中的常规.NET类来解决这个问题,以便我完全独立于我的应用程序的负载有多重,以便完成的声音可以立即触发播放下一个声音没有任何延迟,或者如果这是一个过度杀伤,后台任务应该只用于长时间的阻塞操作。
如果MCI已经停止播放,我的声音播放器基本上只使用计时器来检查API调用,然后开始下一个声音。
此外,它还会在声音启动,停止或出错时提供事件。
或者我是否应该将播放器封装在一个单独的.NET项目中并引用它?然后我也将独立于主应用程序的工作量。
无声播放声音队列对我来说至关重要。