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

标签 c# audio

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

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

最佳答案

您可以使用 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、音乐播放器等上播放音乐...
运行程序。
它会自动通知(true/false)当前是否正在播放音频。

关于c# - 如何知道是否正在使用 C# 播放声音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23829571/

相关文章:

c# - 如何检测用户是否离开键盘?

用于 64 位操作系统的 C#?

c# - 当父进程在 C# 中终止时如何终止子进程

c# - 在所需级别退出嵌套循环

java - 如何将信息传递到 new Thread(..);

python - 我们如何检查 python 中两个音频文件的哈希值之间的相似性?

ios - Sprite Kit & 播放声音导致应用程序终止

ios - UNNotificationSound.default() 是什么声音?

c# - 使用<audio>将wav文件流式传输到Ipad和Firefox

c# - 获取字典列表<string, string>中具有特定键的所有不同值