EndpointVolume API
L'API EndpointVolume consente ai client specializzati di controllare e monitorare i livelli di volume dei dispositivi endpoint audio. Un client ottiene riferimenti alle interfacce nell'API EndpointVolume ottenendo l'interfaccia IMMDevice di un dispositivo endpoint audio e chiamando il metodo IMMDevice::Activate.
Il file di intestazione Endpointvolume.h definisce le interfacce nell'API EndpointVolume.
Le applicazioni audio che usano l'API MMDevice e WASAPI usano in genere l'interfaccia ISimpleAudioVolume per controllare i livelli di volume per sessione. Solo due tipi di applicazioni audio richiedono l'uso dell'API EndpointVolume. Questi tipi di applicazione sono:
- Applicazioni che gestiscono i livelli di volume master dei dispositivi endpoint audio, in modo analogo al programma di controllo del volume di Windows, Sndvol.exe.
- Applicazioni audio professionali ("audio pro") che richiedono l'accesso esclusivo in modalità ai dispositivi endpoint audio.
L'uso inappropriato dell'API EndpointVolume può interferire con i criteri audio di Windows e interrompere le impostazioni del volume di sistema dell'utente.
Se un dispositivo endpoint audio implementa i controlli del volume hardware e disattiva l'audio, l'API EndpointVolume usa tali controlli per gestire il volume del dispositivo. In caso contrario, l'API EndpointVolume implementa i controlli nel software, in modo trasparente al client.
Se un dispositivo dispone di controlli di volume hardware e disattivazione dell'audio, le modifiche apportate alle impostazioni del volume e dell'audio del dispositivo tramite l'API EndpointVolume influiscono sul livello del volume sia in modalità condivisa che in modalità esclusiva. Se un dispositivo non dispone di controlli di volume hardware e disattivazione, le modifiche apportate al volume software e disattivano i controlli tramite l'API EndpointVolume influiscono sul livello del volume in modalità condivisa, ma non in modalità esclusiva. In modalità esclusiva, il client e il dispositivo scambiano direttamente i dati audio, ignorando i controlli software.
Per le applicazioni che devono gestire il volume hardware e disattivare i controlli, l'API EndpointVolume offre due potenziali vantaggi rispetto all'API DeviceTopology.
Prima di tutto, alcuni dispositivi di adattatori audio non dispongono di controlli del volume hardware. Se un dispositivo non dispone di un controllo del volume hardware, l'interfaccia IAudioEndpointVolume nell'API EndpointVolume implementa automaticamente un controllo del volume software nel flusso da o verso tale dispositivo. Per un client dell'API EndpointVolume, il risultato è lo stesso se il controllo del volume viene implementato nell'hardware dal dispositivo o nel software dall'interfaccia API EndpointVolume.
In secondo luogo, anche se il dispositivo adattatore implementa controlli del volume hardware, un'applicazione che usa l'API DeviceTopology per implementare un algoritmo di attraversamento della topologia potrebbe non riuscire a trovare il controllo che sta cercando. In genere, tale applicazione è progettata per attraversare la topologia hardware di un particolare dispositivo o set di dispositivi correlati. L'applicazione rischia di non riuscire se tenta di attraversare la topologia di un dispositivo con cui non è stato progettato o testato in modo specifico.
Solo le applicazioni specializzate che devono accedere a funzioni hardware diverse dai controlli volume e disattivazione disattivata richiedono l'uso dell'API DeviceTopology. Per le applicazioni che richiedono il controllo solo del livello di volume di un flusso in modalità esclusiva, l'API EndpointVolume è più semplice da usare e funziona in modo affidabile con una gamma più ampia di dispositivi hardware audio.
Per esempi di codice che usano le interfacce nell'API EndpointVolume, vedere gli argomenti seguenti:
Per un esempio che usa l'API EndpointVolume, vedere EndpointVolume in Windows SDK.
L'API EndpointVolume implementa le interfacce seguenti.
Interfaccia | Descrizione |
---|---|
IAudioEndpointVolume | Rappresenta i controlli del volume nel flusso audio da o verso un dispositivo endpoint audio. |
IAudioMeterInformation | Rappresenta un misuratore di picco nel flusso audio da o verso un dispositivo endpoint audio. |
Inoltre, i client dell'API EndpointVolume che richiedono una notifica del volume e la disattivazione delle modifiche nei dispositivi endpoint audio devono implementare l'interfaccia seguente.
Interfaccia | Descrizione |
---|---|
IAudioEndpointVolumeCallback | Fornisce notifiche quando cambia il livello del volume o lo stato di disattivazione di un dispositivo endpoint audio. |
Argomenti correlati