如何得到默认的音频设备?(How to get the default audio device?)

2019-11-02 22:13发布

我使用3第三方DLL可以枚举音频设备(提供名称和GUID-ID)和音频设备设置为默认的(由ID)。

我怎样才能得到当前的音频设备(它使用的操作系统)? 我需要的名称或设备ID。

这个问题似乎没有任何有用的答案。

这其中也 。

Answer 1:

您可以使用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);
}


文章来源: How to get the default audio device?