0

我想检测我的电脑是否正在播放任何类型的音频(音乐/电影)。
我写了一个应用程序来通知我我的推特更新。现在我想为其添加语音合成,但我只想在没有音乐或电影播放的情况下播放消息。

虽然我使用的是 C#,但我不介意使用 C++ 进行检测然后集成它。

所以问题是:

1)如何检测音频输出?
2) 什么是 Windows 最好的免费语音合成库?

4

1 回答 1

1

在浏览了 MSDN 一段时间后,我找到了解决方案。

使用环回录音,您可以收听输出到音频输出设备的内容。

http://msdn.microsoft.com/en-gb/library/windows/desktop/dd316551(v=vs.85).aspx

此链接还引用了如何捕获流的示例:

http://msdn.microsoft.com/en-gb/library/windows/desktop/dd370800(v=vs.85).aspx

在这里,您可以通过调用获取缓冲区数据,如示例所示:

pCaptureClient->GetBuffer(...)

你所要做的就是检查这些字节的值。如果它们都是 0,那么就没有什么可玩的了。

对于语音合成,我使用了 SpeechSynthesizer .NET 类

http://msdn.microsoft.com/en-us/library/system.speech.synthesis.speechsynthesizer.aspx

于 2013-02-22T23:24:34.957 回答