Condividi tramite


Uso dei ruoli dispositivo

L'API MMDevice supporta i ruoli del dispositivo. L'enumerazione ERole definisce i ruoli del dispositivo supportati dall'API MMDevice.

Nota

Anche se l'API MMDevice supporta i ruoli del dispositivo, l'interfaccia utente in Windows Vista non implementa il supporto per questa funzionalità.

 

Un'applicazione può usare l'API MMDevice per supportare i ruoli del dispositivo tramite i metodi IMMDeviceEnumerator::GetDefaultAudioEndpoint e IMMNotificationClient::OnDefaultDeviceChanged. Tuttavia, l'interfaccia utente in Windows Vista non supporta l'assegnazione di singoli ruoli a dispositivi diversi. In Windows Vista, l'interfaccia utente consente all'utente di selezionare un dispositivo audio predefinito per il rendering e un dispositivo audio predefinito per l'acquisizione. Quando l'utente seleziona un dispositivo di rendering o acquisizione predefinito, il sistema assegna tutti e tre i ruoli del dispositivo (eConsole, eMultimedia e eCommunications) a tale dispositivo. Le applicazioni non possono modificare i ruoli assegnati ai dispositivi endpoint audio. Il sistema operativo consente solo all'utente di assegnare ruoli del dispositivo.

Un client può registrarsi per ricevere una notifica dall'API MMDevice ogni volta che si verifica una modifica nell'assegnazione dei ruoli ai dispositivi endpoint audio. Quando un ruolo passa da un dispositivo a un altro, il client può scegliere se continuare a riprodurre (o registrare) i flussi attraverso lo stesso dispositivo o per passare i flussi a un altro dispositivo. Per impostazione predefinita, i flussi continuano a riprodurre (o essere registrati) attraverso il dispositivo originale. In Windows Vista, per passare i flussi a un altro dispositivo, il client deve eliminare i flussi nel dispositivo originale e creare flussi di sostituzione nel nuovo dispositivo. In Windows 7, il client può ascoltare le nuove notifiche per implementare un commutatore senza interrompere la riproduzione o la sessione di acquisizione. Per altre informazioni, vedere Routing di flusso.

Se si prevede di usare Windows Vista per testare l'applicazione, è possibile configurare un ambiente di test per verificare che l'applicazione si comporti come previsto quando l'utente può assegnare singoli ruoli del dispositivo a dispositivi diversi. Per altre informazioni, inviare un messaggio di posta elettronica all'indirizzo uaa@microsoft.com.

Dispositivi di comunicazione

L'interfaccia utente di Windows 7 ha la possibilità di aggiungere dispositivi di comunicazione. Il pannello di controllo Audio consente all'utente di selezionare un dispositivo di comunicazione predefinito per il rendering e l'acquisizione del flusso audio. Per impostazione predefinita, quando un nuovo dispositivo è connesso al computer, il sistema operativo esegue il rilevamento automatico dei ruoli e determina se il dispositivo è adatto per il ruolo di eCommunication. Scegliendo come destinazione i dispositivi di comunicazione, è possibile sviluppare applicazioni che usano le API Audio di base per implementare soluzioni di comunicazione per PC-phone. Ad esempio, un'applicazione VoIP potrebbe assegnare i flussi di input vocale e di output ai dispositivi endpoint di acquisizione e rendering predefiniti con il ruolo eCommunications. Come qualsiasi altro flusso, un'applicazione di comunicazione deve ottenere un riferimento all'endpoint del dispositivo di comunicazione chiamando IMMDeviceEnumerator::GetDefaultAudioEndpoint. In questa chiamata, l'applicazione deve specificare eCommunications nel parametro Role . Le operazioni di flusso WASAPI su un flusso, aperte in un dispositivo di comunicazione, sono simili a qualsiasi altro flusso audio. L'applicazione di comunicazione può migliorare l'esperienza utente implementando comportamenti come l'anatraggio gestendo le notifiche dall'endpoint del dispositivo. Per altre informazioni, vedere Uso di un dispositivo di comunicazione.

Rilevamento automatico dei ruoli del dispositivo

Si consideri uno scenario in cui un computer ha un dispositivo di rendering predefinito, gli altoparlanti e un dispositivo di acquisizione predefinito, un microfono. L'utente connette un visore VR USB al computer. Dopo aver installato i driver appropriati, il sistema operativo tenta di rilevare un ruolo da assegnare per il nuovo dispositivo audio.

In Windows 7 la funzionalità di rilevamento dei ruoli del dispositivo è stata migliorata in modo significativo per determinare i ruoli appropriati adatti per i dispositivi audio. Tutti i dispositivi audio contengono un set di impostazioni di configurazione popolate dall'OEM del dispositivo, che consentono al sistema di decidere come usare il dispositivo. Queste impostazioni includono informazioni come la posizione fisica del jack audio, il tipo di dispositivo, il sottotipo jack e le funzionalità di rilevamento in modo che il sistema possa determinare se il dispositivo è collegato. Recuperando questi valori dal dispositivo, il sistema operativo determina il ruolo da assegnare al dispositivo. In questo scenario, il sistema ha eseguito una query sul dispositivo VR USB, ha eseguito il rilevamento automatico dei ruoli e ha deciso che il dispositivo è più adatto per essere un dispositivo di comunicazione.

Un'applicazione può anche ottenere informazioni jack usando le API Audio core. Per altre informazioni, vedere IKsJackDescription e IKsJackDescription2.

Ruoli dispositivo