如何知道使用c#播放声音?

时间:2014-05-23 12:41:37

标签: c# audio

我有一个TTS程序(第三方),我写了一个使用该程序的c#应用程序。 (输入我的应用程序,然后按一个按钮移动鼠标并单击第三方应用程序。)

我需要知道演讲是否结束。有没有关于如何确定是否有声卡播放声音的想法?

3 个答案:

答案 0 :(得分:4)

你可以使用CSCore 立即下载 - > https://github.com/filoe/cscore

将这些行粘贴到控制台项目上。

using System;
using CSCore.CoreAudioAPI;

namespace AudioDetector
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(IsAudioPlaying(GetDefaultRenderDevice()));
            Console.ReadLine();
        }

        public static MMDevice GetDefaultRenderDevice()
        {
            using (var enumerator = new MMDeviceEnumerator())
            {
                return enumerator.GetDefaultAudioEndpoint(DataFlow.Render, Role.Console);
            }
        }

        public static bool IsAudioPlaying(MMDevice device)
        {
            using (var meter = AudioMeterInformation.FromDevice(device))
            {
                return meter.PeakValue > 0;
            }
        }
    }
}

在YouTube,音乐播放器等上播放音乐...
运行程序。
如果当前正在播放音频,它会自动通知(真/假)。

答案 1 :(得分:2)

你可以通过使用Direct X的包装器来做到这一点。有很多例子,只是google for it。例如,可以找到C#代码herehere

答案 2 :(得分:1)

您可以检查应用程序是否发出声音。看看这个:Getting individual windows application current volume output level as visualized in audio Mixer