我正在尝试使用 Windows 音频会话 API 在当前音频会话的枚举中定位默认音频会话。目前,我IAudioSessionControl在角色中引用了音频渲染端点的默认会话eConsole以及IAudioSessionEnumerator枚举此默认端点的音频会话的对象,但我需要能够比较IAudioSessionControl我拥有的对象是否相等返回的IAudioSessionControl对象IAudioSessionEnumerator::GetSession。
我希望我可以通过比较IAudioSessionControl指针是否相等来测试是否相等。当我IAudioSessionControl使用IAudioClient::GetService. 不幸的是,返回的这个指针IAudioClient::GetService没有出现在IAudioSessionEnumerator. 此外,即使使用相同的音频会话 GUID ( ) 和值,通过路由多次获取默认音频会话IAudioSessionManager::GetAudioSessionControl也不会产生相同的指针。IAudioSessionControlGUID_NULLCrossProcessSession
如何在给定两个IAudioSessionControl指针的情况下测试音频会话的相等性?是否可以获得给定IAudioSessionControl对象的音频会话 GUID 和进程标识符?