【发布时间】:2011-05-22 18:24:47
【问题描述】:
我正在尝试使用 Windows 音频会话 API 在当前音频会话的枚举中定位默认音频会话。目前,我在eConsole 角色中引用了音频渲染端点默认会话的IAudioSessionControl 以及枚举此默认端点的音频会话的IAudioSessionEnumerator 对象,但我需要能够比较我拥有的IAudioSessionControl 对象与IAudioSessionEnumerator::GetSession 返回的IAudioSessionControl 对象是否相等。
我希望我可以通过比较 IAudioSessionControl 指针的相等性来测试相等性。当我使用IAudioClient::GetService 多次获取默认会话的IAudioSessionControl 时,此方法有效。不幸的是,IAudioClient::GetService 返回的这个指针没有出现在IAudioSessionEnumerator 的音频会话枚举中。此外,即使使用相同的音频会话 GUID (GUID_NULL) 和CrossProcessSession 值,通过IAudioSessionManager::GetAudioSessionControl 路由多次获取默认音频会话也不会产生相同的IAudioSessionControl 指针。
如何在给定两个 IAudioSessionControl 指针的情况下测试音频会话的相等性?是否可以获得给定IAudioSessionControl 对象的音频会话 GUID 和进程标识符?
【问题讨论】:
标签: c++ winapi com core-audio wasapi