我正嘗試使用Windows音頻會話API來查找當前音頻會話枚舉中的默認音頻會話。目前,我有角色中的音頻渲染端點的默認會話的IAudioSessionControl
以及枚舉此默認端點的音頻會話的IAudioSessionEnumerator
對象的引用,但我需要能夠比較IAudioSessionControl
對象,即I與IAudioSessionEnumerator::GetSession
返回的對象具有相同的IAudioSessionControl
。如何測試音頻會話的相等性
我希望我可以通過比較IAudioSessionControl
平等指針來測試平等。當我使用IAudioClient::GetService
多次獲得默認會話的IAudioSessionControl
時,這將起作用。不幸的是,IAudioClient::GetService
返回的這個指針沒有出現在IAudioSessionEnumerator
的音頻會話枚舉中。此外,即使使用相同的音頻會話GUID(GUID_NULL
)和CrossProcessSession
值,通過IAudioSessionManager::GetAudioSessionControl
路由多次獲取默認音頻會話也不會產生相同的IAudioSessionControl
指針。
如何測試給定兩個IAudioSessionControl
指針的音頻會話是否相等?是否有可能獲得給定IAudioSessionControl
對象的音頻會話GUID和進程標識符?