如何判断Windows当前是否播放任何声音?

时间:2011-07-07 19:47:35

标签: c#

如何确定Windows当前是否通过主音频设备播放任何声音?我需要知道,这样我才能让程序自动调整音量。

2 个答案:

答案 0 :(得分:4)

你可以使用CSCore 立即下载 - > http://cscore.codeplex.com/

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

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)