Domanda

Sto cercando di utilizzare l'API della sessione audio di Windows per individuare la sessione audio predefinita all'interno dell'enumerazione delle attuali sessioni audio. Attualmente ho un riferimento al IAudioSessionControl della sessione predefinita dell'audio rendering endpoint in eConsole Ruolo e un IAudioSessionEnumerator < / A> Oggetto che elenca le sessioni audio di questo endpoint predefinito, ma devo essere in grado di confrontare l'oggetto IAudioSessionControl che ho per l'uguaglianza con gli oggetti IAudioSessionControl restituiti da IAudioSessionEnumerator::GetSession .

Speravo di poter testare l'uguaglianza confrontando i puntatori IAudioSessionControl per l'uguaglianza. Questo funziona quando ottengo il IAudioSessionControl per la sessione predefinita più volte usando IAudioClient::GetService . Sfortunatamente, questo puntatore restituito da IAudioClient::GetService non appare nell'enumerazione delle sessioni audio da parte del IAudioSessionEnumerator. Inoltre, ottenendo la sessione audio predefinita più volte tramite IAudioSessionManager::GetAudioSessionControl Route non produce indistinti indistinti generatori di generazione anche quando si utilizza la stessa sessione audio GUID (IAudioSessionControl) e il valore GUID_NULL.

Come faccio a testare per l'uguaglianza di sessioni audio dati due puntatori CrossProcessSession? È possibile ottenere la sessione audio GUID e l'identificativo del processo di un determinato oggetto IAudioSessionControl?

È stato utile?

Soluzione

Guarda il iaudiosessioncontrol2 :: GetSessionIdentifier API, questo è ciò che il sottosistema audio utilizza per persistere i volumi di sessione.Se si desidera distinguere le sessioni in fase di runtime (due istanze della stessa app in esecuzione allo stesso tempo), controllare il getessioninstance identificatore API.

Altri suggerimenti

L'unica cosa com può aiutarti qui è Oggetto Identity Requisiti .

Query IUnknown* da entrambi gli oggetti e confrontali.Se IUnknown* di tali oggetti è lo stesso è lo stesso oggetto, altrimenti quelli sono oggetti distinti.

Ovviamente l'implementazione potrebbe violare il requisito dell'identità dell'oggetto o quegli oggetti distinti potrebbero in qualche modo la mappa sullo stesso oggetto interno.Com non può aiutarti qui - Devi trovare informazioni specifiche per quell'implementazione del componente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top