Condividi tramite


Controlli del volume

I client che gestiscono flussi in modalità condivisa usano in genere le interfacce ISimpleAudioVolume e IAudioSessionEvents in WASAPI per controllare e monitorare i livelli di volume del flusso. Tramite i metodi nell'interfaccia ISimpleAudioVolume , il client può ottenere e impostare i livelli di volume delle sessioni audio a cui appartengono i flussi in modalità condivisa. Se Sndvol o un'altra applicazione modifica il livello del volume di sessione, il client può ricevere una notifica della modifica tramite l'interfaccia IAudioSessionEvents .

I client che gestiscono flussi in modalità esclusiva usano in genere le interfacce IAudioEndpointVolume e IAudioEndpointVolumeCallback nell'API EndpointVolume per controllare e monitorare i livelli di volume del flusso. Tramite i metodi nell'interfaccia IAudioEndpointVolume , il client può ottenere e impostare il livello di volume di un dispositivo endpoint audio. Se Sndvol o un'altra applicazione modifica il livello di volume del dispositivo endpoint, il client può ricevere una notifica della modifica tramite l'interfaccia IAudioEndpointVolumeCallback .

Come spiegato in Sessioni audio, Sndvol è il programma di controllo del volume di sistema. Visualizza i controlli del volume per i dispositivi endpoint di rendering audio nel sistema. Attualmente non visualizza i controlli del volume per i dispositivi endpoint di acquisizione audio. Per visualizzare i controlli del volume per un dispositivo specifico, fare clic su Dispositivo nella barra dei menu e selezionare un nome di dispositivo dall'elenco dei dispositivi disponibili.

La finestra Sndvol separa i controlli del volume per un dispositivo in due gruppi. La casella di gruppo sul lato sinistro della finestra è etichettata Dispositivo. La casella Dispositivo contiene un singolo controllo volume controllato dall'interfaccia IAudioEndpointVolume. Le modifiche apportate dall'utente a questo controllo volume possono essere monitorate tramite l'interfaccia IAudioEndpointVolumeCallback .

La casella di gruppo sul lato destro della finestra Sndvol è denominata Applicazioni. La casella Applicazioni contiene i controlli del volume per le applicazioni che attualmente condividono il dispositivo. Per le applicazioni che usano il dispositivo in modalità condivisa, i controlli del volume rappresentano i livelli di volume controllati dall'interfaccia ISimpleAudioVolume . Le modifiche apportate dall'utente a questi controlli del volume possono essere monitorate tramite l'interfaccia IAudioSessionEvents .

Anche se un'applicazione in modalità condivisa può usare l'interfaccia IAudioSessionEvents per monitorare le modifiche apportate dall'utente al controllo volume dell'applicazione nella casella Applicazioni nella finestra Sndvol, l'applicazione non può monitorare le modifiche apportate ai controlli volume di altre applicazioni non correlate. Analogamente, un'applicazione può modificare i livelli di volume delle sessioni audio tramite l'interfaccia ISimpleAudioVolume , ma non può modificare i livelli di volume delle sessioni appartenenti ad altre applicazioni non correlate.

Tuttavia, due o più applicazioni correlate (o istanze della stessa applicazione) possono condividere lo stesso controllo volume nella casella Applicazioni nella finestra Sndvol assegnando i flussi audio alla stessa sessione tra processi o associando le rispettive sessioni allo stesso parametro di raggruppamento. Per altre informazioni, vedere Sessioni audio e parametri di raggruppamento.

WASAPI offre due interfacce aggiuntive, IChannelAudioVolume e IAudioStreamVolume, per controllare i livelli di volume dei flussi in modalità condivisa. Queste interfacce vengono usate principalmente da client specializzati che richiedono il controllo sui livelli di volume di singoli canali in una sessione o singoli flussi in una sessione.

L'API DeviceTopology consente ai client di accedere ai controlli del volume nelle topologie delle schede audio. Tuttavia, i client che gestiscono flussi in modalità esclusiva usano in genere l'API EndpointVolume anziché l'API DeviceTopology per controllare i livelli di volume del flusso. L'API EndpointVolume semplifica il controllo del volume di un dispositivo endpoint in due modi. Innanzitutto, se un dispositivo endpoint implementa un controllo del volume hardware, l'API DeviceTopology richiede al client di attraversare la topologia del dispositivo nella ricerca del controllo hardware. Al contrario, l'API EndpointVolume trova automaticamente il controllo del volume hardware per il client. In secondo luogo, se il dispositivo endpoint non implementa un controllo del volume hardware, un client DeviceTopology deve implementare un controllo del volume nel software. Al contrario, l'API EndpointVolume sostituisce automaticamente un controllo del volume software per il controllo hardware mancante.

Le sezioni seguenti descrivono i controlli del volume per le sessioni audio e per i dispositivi endpoint audio:

Guida per programmatori