将指定设备静音的C#小程序
概述
设备接多个音频输出实体,
- 线控喇叭
- 蓝牙音箱
- 显示器内置喇叭
- 蓝牙耳机
控制起来相对繁琐,下面的C#代码实现了不同的物理输出设备批量静音,NAudio库概念清晰调用非常简单
Code
using NAudio.CoreAudioApi;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
/*
https://github.com/naudio/NAudio/blob/master/Docs/EnumerateOutputDevices.md
https://www.cnblogs.com/keaneljx/p/15658421.html
*/
namespace AudioM
{
internal class Program
{
static void Main(string[] args)
{
//在命令行输入中设置需要禁言的设备关键词,如 <yourfile>.exe HDMI
var enumerator = new MMDeviceEnumerator();
foreach (var wasapi in enumerator.EnumerateAudioEndPoints(DataFlow.All, DeviceState.Active))
{
Console.WriteLine($"[=]{wasapi.DataFlow}, {wasapi.FriendlyName}, {wasapi.DeviceFriendlyName}, {wasapi.State}, " +
$"{wasapi.AudioEndpointVolume.MasterVolumeLevel}");
foreach (var s in args)
{
if (wasapi.FriendlyName.Contains(s))
{
if (wasapi.AudioEndpointVolume.Mute == false)
wasapi.AudioEndpointVolume.Mute = true;
Console.WriteLine("[+]Muted device: {1}:{0}", wasapi.DeviceFriendlyName, wasapi.FriendlyName);
break;
}
}
}
}
}
}