如何从音频播放设备获取通道数?



游戏《泰坦陨落2》显示了播放设备的音频配置。 https://i.stack.imgur.com/WcGpK.png

我可以通过 C# 中的代码获取此信息吗?

更新和更正(UTC时间2019年9月29日下午3:12左右(:上面的链接图像显示了免费游戏Apex Legends的音频选项。《泰坦陨落2》音频设置的链接 http://i.imgur.com/6OSSysd.gif。对于两个游戏,Windows音频配置显示信息,这不是用户可以在游戏中更改的选项。

有些人可能会发现 https://satsun.org/audio/有用的信息。

通过 MMDevice 枚举 Windows Vista 或更高版本上的设备

IMMDeviceEnumerator *enumerator = nullptr;
IMMDevice *device = nullptr;
hr = CoCreateInstance(__uuidof(MMDeviceEnumerator), nullptr, CLSCTX_ALL, __uuidof(IMMDeviceEnumerator), (void**)&enumerator);
if (FAILED(hr))
...
// Get the default renderer
hr = enumerator->GetDefaultAudioEndpoint(eRender, eConsole, &device);
if (FAILED(hr))
...
hr = pEndpoint->OpenPropertyStore(
STGM_READ, &pProps);
if (FAILED(hr))
...
PROPVARIANT varName;
// Initialize container for property value.
PropVariantInit(&varName);
// Get the endpoint's physical speaker property.
hr = pProps->GetValue(
PKEY_AudioEndpoint_PhysicalSpeakers, &varName);
if (FAILED(hr))
…
// See https://learn.microsoft.com/en-us/windows/win32/coreaudio/pkey-audioendpoint-physicalspeakers
PropVariantClear(&varName);

查看Microsoft文档

相关内容

  • 没有找到相关文章

最新更新