如何获取默认音频设备?

时间:2014-02-06 18:56:51

标签: c# audio windows-8 hardware windows-8.1

我正在使用一个第三方DLL,它可以枚举音频设备(提供名称和guid-id)并将音频设备设置为默认设备(通过id)。

如何获取当前音频设备(操作系统使用)?我需要名字或设备ID。

This问题似乎没有有用的答案。

This one as well

1 个答案:

答案 0 :(得分:2)

您可以使用DirectShow。

private IBaseFilter CreateFilter(Guid category, string name)
{
    object source = null;
    Guid guid = typeof(IBaseFilter).GUID;
    foreach (DsDevice device in DsDevice.GetDevicesOfCat(category))
    {
        if ( device.Name == name )
        {
            device.Mon.BindToObject(null, null, ref guid, out source);
            break;
        }
    }
    return (IBaseFilter)source;
}
// Get device like this:
IBaseFilter defaultSoundDevice = CreateFilter( FilterCategory.AudioInputDevice, "Default DirectSound Device" );

更新#2:

DsDevice[] audioRenderers;
audioRenderers = DsDevice.GetDevicesOfCat(FilterCategory.AudioInputDevice);
foreach (DsDevice device in audioRenderers)
{
    MessageBox.Show(device.Name);
}