如何知道是否正在使用C#播放声音?

mef*_*mef 2 c# audio

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

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

Ken*_*lar 5

您可以使用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;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在YouTube,音乐播放器等上播放音乐...
运行程序。
它会自动通知(true / false)当前是否正在播放音频。