Condividi tramite


DuckingCaptureSample

Questa applicazione di esempio illustra l'apertura e la chiusura dei flussi di comunicazione e causa eventi di anatraggio che un'applicazione può ottenere per implementare l'attenuazione del flusso. Questa applicazione implementa un client di chat che usa le API Audio di base per leggere i dati audio da un dispositivo di comunicazione e per riprodurli nel dispositivo di output.

Questo argomento include le sezioni seguenti.

Descrizione

In questo esempio vengono illustrate le funzionalità seguenti.

  • API MMDevice per l'enumerazione e la selezione dei dispositivi multimediali.
  • WASAPI per l'accesso all'acquisizione e al rendering delle comunicazioni, alle operazioni di gestione dei flussi e alla gestione degli eventi di anatraggio.
  • API WAVE per l'accesso al dispositivo di comunicazione e l'acquisizione dell'input audio.

Requisiti

Prodotto Versione
Windows SDK Windows 7
Visual Studio 2008

 

Download dell'esempio

Questo esempio è disponibile nelle posizioni seguenti.

Ufficio Percorso/URL
Windows SDK \Programmi\Microsoft SDKs\Windows\v7.0\Samples\Multimedia\Audio\DuckingCaptureSample\...

 

Compilazione dell'esempio

Per compilare l'esempio DuckingCaptureSample, seguire questa procedura:

  1. Aprire il DuckingCaptureSample.sln in Visual Studio 2008.
  2. Nella finestra selezionare la configurazione della soluzione Debug o Rilascio , selezionare il menu Compila dalla barra dei menu e selezionare l'opzione Compila . Se Visual Studio non viene aperto dalla shell CMD per l'SDK, Visual Studio non avrà accesso all'ambiente di compilazione DELL'SDK. In tal caso, l'esempio non verrà compilato a meno che non si imposti esplicitamente la variabile di ambiente MSSdk, che viene usata nel file di progetto DuckingCaptureSample.vcproj.

Esecuzione dell'esempio

Se si compila correttamente l'applicazione, viene generato un file eseguibile, DuckingCaptureSample.exe. Per eseguirlo, selezionare Avvia debug o Avvia senza eseguire debug dal menu Debug o digitare DuckingCaptureSample in una finestra di comando.

DuckingCaptureSample fornisce all'utente due implementazioni per acquisire l'audio dal dispositivo console predefinito: API WASAPI e Wave. Per avviare una sessione di acquisizione, selezionare una modalità e fare clic su Avvia nell'interfaccia utente dell'applicazione. Per terminare la sessione, fare clic su Arresta. A seconda del dispositivo specificato dall'utente (input o output), l'applicazione usa l'API MMDevice per ottenere un riferimento al rendering predefinito o acquisire il dispositivo di comunicazione. Dopo l'avvio di una sessione di chat, l'applicazione esegue le attività seguenti:

  • Crea e inizializza un client audio in modalità guidata dagli eventi.
  • Associa il client all'handle di eventi che segnala che gli esempi sono pronti per l'acquisizione o il rendering.
  • Configura un client di acquisizione e un client di rendering per il trasporto.
  • Crea il thread di chat e avvia il motore audio.

Per acquisire dati audio, con ogni passaggio di elaborazione, l'esempio usa il client di acquisizione per ottenere la quantità totale di dati acquisiti disponibili nel buffer, leggere i dati dal dispositivo di input predefinito e rilasciare il pacchetto e rendere disponibile il buffer per la lettura del set successivo di dati acquisiti.

Per il rendering, l'applicazione determina la quantità di dati accodati fino a riprodurre nel buffer dell'endpoint di acquisizione. Scrive di conseguenza nel buffer e rilascia il buffer in preparazione al passaggio di elaborazione successivo fino a quando non vengono scritti tutti i dati. Per il rendering, i fotogrammi invisibile all'utente vengono pre rollback per impedire al motore audio di eseguire l'errore all'avvio. DuckingCaptureSample mostra anche come nascondere il flusso di rendering dal mixer del volume.

Per altre informazioni sulla funzionalità di attenuazione del flusso, vedere Uso di un dispositivo di comunicazione.

Esempi di SDK che usano le API audio principali