我是一名新手 C# 编码器,作为我学习过程的一部分,我想构建一个桌面 Windows 应用程序。该应用程序主要检测某个应用程序(网络浏览器、iTunes、VLC 等)当前是否正在播放音频。如果另一个正在运行的应用程序同时开始播放音频,我希望制作的应用程序会自动暂时降低其中一个应用程序的音量。当第二个应用程序的音频停止播放音频时,音频将恢复到其原始水平。
例如:
我不确定是否可以构建此应用程序,因为它可能需要深度操作系统集成。我搜索了“.net 检测音频”,但一无所获。它可能超出了 .net 的限制。
该应用程序还需要 .net 能够逐个应用程序调整音频级别以及检测它!
这是我关于 Stack Overflow 的第一个问题。我已经有这个想法好几年了,直到最近才开始学习编码。我很想把这个应用程序制作成一个作品集,并将它作为免费软件在线发布!
先感谢您。
最佳答案
github上有一个项目名称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;
}
}
}
}
这将在播放音频时通知您,
Sourece
关于c# - 是否可以使用 .net 检测来自 Windows 桌面应用程序的音频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49310613/