【问题标题】:How do I figure out if Windows is currently playing any sounds?如何确定 Windows 当前是否正在播放任何声音?
【发布时间】:2016-07-22 10:51:11
【问题描述】:

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

【问题讨论】:

  • 这个想法到底是什么?播放声音时调节音量?不播放声音时什么都不做?能不能详细解释一下?
  • 我觉得这个更适合超级用户
  • 为什么?这是一个编程问题。我想知道如何以编程方式检测它。

标签: c#


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    【讨论】:

    • -1 :这些链接实际上都没有回答 OP 的问题。它们可能很有用,但仍然是通用的,可以为这里的问题提供解决方案。
    猜你喜欢
    • 2018-01-07
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 2013-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多