【发布时间】:2014-11-23 10:48:21
【问题描述】:
我目前有这段代码,遍历默认设备的音频会话控件(未显示):
int sessionCount;
hr = audioSessionEnumerator->GetCount(&sessionCount);
if (FAILED(hr)) {
throw HRESULTException("audioSessionEnumerator->GetCount", hr);
}
IAudioSessionControl *audioSessionControl;
for (int i = 0; i < sessionCount; ++i) {
hr = audioSessionEnumerator->GetSession(i, &audioSessionControl);
if (FAILED(hr)) {
throw HRESULTException("audioSessionEnumerator->GetSession", hr);
}
LPWSTR displayName;
hr = audioSessionControl->GetDisplayName(&displayName);
if (FAILED(hr)) {
throw HRESULTException("audioSessionControl->GetDisplayName", hr);
}
std::wcout << displayName << std::endl;
CoTaskMemFree(displayName);
audioSessionControl->Release();
}
audioSessionEnumerator->Release();
我的混音器目前如下所示:
预期的输出是:
Steam Client Bootstrapper
melodysheep - The Face of Creation
System Sounds
但是,看到的输出是:
(blank line)
(blank line)
@%SystemRoot%\System32\AudioSrv.Dll,-202
这与GetDisplayName替换为GetIconPath时的输出相同。
上面的代码中出现了什么问题导致了这个问题?如果必须显示更多代码,请通知我。
【问题讨论】: