Condividi tramite


Recupero dell'endpoint dispositivo per il routing di flusso

In Windows 7, le API della piattaforma di alto livello che usano LE API audio principali, ad esempio Media Foundation, DirectSound e Wave, implementano la funzionalità di routing del flusso gestendo il passaggio di flusso da un dispositivo esistente a un nuovo endpoint audio predefinito. Le applicazioni multimediali che usano queste API (ad esempio, un'applicazione che attiva un oggetto IDirectSound o IBaseFilter in un oggetto IMMDevice ) usano il comportamento di routing del flusso senza apportare modifiche all'origine.

Le API di alto livello implementano il routing di flusso per l'endpoint del dispositivo ottenuto tramite IMMDeviceEnumerator::GetDefaultAudioEndpoint. Se un'applicazione trasmette al dispositivo predefinito, la funzionalità di routing del flusso funziona come definito. Flussi non vengono spostati nel nuovo dispositivo se viene recuperato da qualsiasi altro meccanismo anche se è uguale al dispositivo predefinito.

Un'applicazione multimediale che usa le API audio principali direttamente (client WASAPI) può fornire un'implementazione di routing del flusso personalizzata per qualsiasi dispositivo di rendering o acquisizione. Un client WASAPI può replicare l'implemenza fornita dalle API di alto livello limitandola ai flussi aperti nei dispositivi impostati come dispositivo predefinito. Per ottenere un riferimento all'endpoint del dispositivo predefinito, il client deve chiamare IMMDeviceEnumerator::GetDefaultAudioEndpoint. In questa chiamata, il client deve indicare se richiede un puntatore al dispositivo predefinito per il rendering o al dispositivo predefinito di acquisizione specificando il parametro dataFlow . Il client deve inoltre specificare il ruolo appropriato per l'endpoint nell'attributo ERole (eConsole o eCommunications). Non usare eMultimedia.

Se l'applicazione esegue il flusso in qualsiasi altro dispositivo, l'applicazione può ottenere il dispositivo specificando una stringa id endpoint (chiamando IMMDeviceEnumerator::GetDevice).

Dopo aver identificato il dispositivo, il client WASAPI può fornire l'implementazione per il routing del flusso gestendo le notifiche del dispositivo e della sessione audio inviate per il dispositivo. Per altre informazioni su queste notifiche, vedere Notifiche pertinenti per il routing di flusso.

Informazioni sull'API MMDevice

Informazioni su WASAPI

Routing di flusso