📜  c# 列出音频设备 - C# (1)

📅  最后修改于: 2023-12-03 15:29:46.842000             🧑  作者: Mango

C# - 列出音频设备

在 C# 中,可以使用 Windows.Devices.Enumeration 命名空间来列出音频设备。

步骤
  1. 在 C# 项目中,添加对 Windows.Devices.Enumeration 命名空间的引用:
using System;
using Windows.Devices.Enumeration;
  1. 创建 DeviceWatcher 实例,通过该实例监听音频设备的变化:
DeviceWatcher deviceWatcher = null;
deviceWatcher = DeviceInformation.CreateWatcher(DeviceClass.AudioRender);
deviceWatcher.Added += DeviceAdded;
deviceWatcher.Removed += DeviceRemoved;
deviceWatcher.Updated += DeviceUpdated;
deviceWatcher.Start();
  1. 实现相应的处理方法,以处理设备变化的事件:
private void DeviceAdded(DeviceWatcher sender, DeviceInformation device)
{
    Console.WriteLine("Device added: " + device.Name);
}
private void DeviceRemoved(DeviceWatcher sender, DeviceInformationUpdate deviceUpdate)
{
    Console.WriteLine("Device removed: " + deviceUpdate.Id);
}
private void DeviceUpdated(DeviceWatcher sender, DeviceInformationUpdate deviceUpdate)
{
    Console.WriteLine("Device updated: " + deviceUpdate.Id);
}

注意:以上代码仅会在控制台中输出设备变化的信息。您可以根据实际需求修改处理方法的代码。

  1. 在需要列出音频设备的地方,可以使用以下代码:
DeviceInformationCollection devices = await DeviceInformation.FindAllAsync(DeviceClass.AudioRender);
foreach (var device in devices)
{
    Console.WriteLine("Device name: " + device.Name);
    Console.WriteLine("Device Id: " + device.Id);
}

此代码将遍历所有音频渲染设备,并输出它们的名称和 Id。

总结

经过以上步骤,我们可以使用 Windows.Devices.Enumeration 命名空间来列出音频设备,并根据需要处理它们的变化。