Condividi tramite


Interfaccia IAudioEndpointVolumeCallback (endpointvolume.h)

L'interfaccia IAudioEndpointVolumeCallback fornisce notifiche delle modifiche apportate al livello del volume e alla modifica dello stato di un dispositivo endpoint audio. A differenza delle altre interfacce di questa sezione, implementate dal componente di sistema WASAPI, un client API EndpointVolume implementa l'interfaccia IAudioEndpointVolumeCallback . Per ricevere notifiche evento, il client passa un puntatore alla relativa interfaccia IAudioEndpointVolumeCallback al metodo IAudioEndpointVolume::RegisterControlChangeNotify.

Dopo aver registrato la relativa interfaccia IAudioEndpointVolumeCallback , il client riceve le notifiche degli eventi sotto forma di callback tramite il metodo OnNotify nell'interfaccia. Queste notifiche degli eventi si verificano quando uno dei metodi seguenti causa una modifica del livello del volume o la modifica dello stato di un dispositivo endpoint:

Se un dispositivo endpoint audio implementa i controlli del volume hardware e disattiva i controlli, l'interfaccia IAudioEndpointVolume usa i controlli hardware per gestire il volume del dispositivo. In caso contrario, l'interfaccia IAudioEndpointVolume implementa i controlli volume e mute nel software, in modo trasparente al client.

Se un dispositivo dispone di controlli di volume hardware e disattivazione, le modifiche apportate alle impostazioni del volume e disattivate tramite i metodi nell'elenco precedente influiscono sul volume del dispositivo sia in modalità condivisa che in modalità esclusiva. Se un dispositivo non dispone di controlli del volume hardware e disattiva i controlli, le modifiche apportate al volume software e disattivano i controlli tramite questi metodi influiscono sul volume del dispositivo 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. Tuttavia, le modifiche apportate ai controlli software tramite questi metodi generano notifiche degli eventi indipendentemente dal fatto che il dispositivo funzioni in modalità condivisa o in modalità esclusiva. Le modifiche apportate ai controlli del volume software e mute mentre il dispositivo opera in modalità esclusiva, quando il dispositivo passa alla modalità condivisa.

Per determinare se un dispositivo dispone di controlli di volume hardware e di disattivazione, chiamare il metodo IAudioEndpointVolume::QueryHardwareSupport .

Nell'implementazione dell'interfaccia IAudioEndpointVolumeCallback , il client deve osservare queste regole per evitare deadlock:

  • I metodi nell'interfaccia devono essere non sbloccati. Il client non deve mai attendere su un oggetto di sincronizzazione durante un callback di eventi.
  • Il client non deve mai chiamare il metodo IAudioEndpointVolume::UnregisterControlChangeNotify durante un callback dell'evento.
  • Il client non deve mai rilasciare il riferimento finale in un oggetto API EndpointVolume durante un callback dell'evento.
Per un esempio di codice che implementa l'interfaccia IAudioEndpointVolumeCallback , vedere Controlli volume endpoint.

Ereditarietà

L'interfaccia IAudioEndpointVolumeCallback eredita dall'interfaccia IUnknown . IAudioEndpointVolumeCallback include anche questi tipi di membri:

Metodi

L'interfaccia IAudioEndpointVolumeCallback include questi metodi.

 
IAudioEndpointVolumeCallback::OnNotify

Il metodo OnNotify notifica al client che il livello del volume o lo stato di modifica dello stato dell'endpoint audio è cambiato.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [app desktop | App UWP]
Server minimo supportato Windows Server 2008 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione endpointvolume.h

Vedi anche

Interfacce audio principali

EndpointVolume API

IAudioEndpointVolume::RegisterControlChangeNotify

IAudioEndpointVolume::UnregisterControlChangeNotify