CaptureSharedTimerDriven
Questa applicazione di esempio usa le API Audio principali per acquisire dati audio da un dispositivo di input specificato dall'utente e scriverlo in un file .wav denominato in modo univoco nella directory corrente. Questo esempio illustra il buffering basato su timer.
Questo argomento include le sezioni seguenti.
- Descrizione
- Requisiti
- Download dell'esempio
- Compilazione dell'esempio
- Esecuzione dell'esempio
- Argomenti correlati
Descrizione
In questo esempio vengono illustrate le funzionalità seguenti.
- API MMDevice per l'enumerazione e la selezione dei dispositivi multimediali.
- WASAPI per le operazioni di gestione dei flussi.
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\CaptureSharedTimerDriven\... |
Compilazione dell'esempio
Per compilare l'esempio CaptureSharedTimerDriven, seguire questa procedura:
- Aprire la shell CMD per Windows SDK e passare alla directory di esempio CaptureSharedTimerDriven.
- Eseguire il comando
start WASAPICaptureSharedTimerDriven.sln
nella directory CaptureSharedTimerDriven per aprire il progetto WASAPICaptureSharedTimerDriven nella finestra di Visual Studio. - 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 in modo esplicito la variabile di ambiente MSSdk, che viene usata nel file di progetto WASAPICaptureSharedTimerDriven.vcproj.
Esecuzione dell'esempio
Se si compila correttamente l'applicazione demo, viene generato un file eseguibile, WASAPICaptureSharedTimerDriven.exe. Per eseguirlo, digitare WASAPICaptureSharedTimerDriven
in una finestra di comando seguita da argomenti obbligatori o facoltativi. Nell'esempio seguente viene illustrato come eseguire l'esempio specificando la durata dell'acquisizione nel dispositivo multimediale predefinito.
WASAPICaptureSharedTimerDriven.exe -d 20 -multimedia
La tabella seguente illustra gli argomenti.
Argomento | Descrizione |
---|---|
-? | Mostra la Guida. |
-h | Mostra la Guida. |
-l | Latenza di acquisizione audio in millisecondi. |
-d | Durata dell'acquisizione audio in secondi. |
-m | Disabilita l'uso di MMCSS. |
-Console | Usare il dispositivo console predefinito. |
-Comunicazioni | Usare il dispositivo di comunicazione predefinito. |
-Multimediale | Usa il dispositivo multimediale predefinito. |
-Endpoint | Usare l'identificatore dell'endpoint specificato nel valore switch. |
Se l'applicazione viene eseguita senza argomenti, enumera i dispositivi disponibili e chiede all'utente di selezionare un dispositivo per la sessione di acquisizione. La console predefinita, le comunicazioni e i dispositivi multimediali sono elencati dai dispositivi e dagli identificatori dell'endpoint. Se non viene specificata alcuna durata, il flusso audio dal dispositivo specificato viene acquisito per 10 secondi. L'applicazione scrive i dati acquisiti in un file .wav denominato in modo univoco.
CaptureSharedTimerDriven illustra il buffering basato su timer. In questa modalità, il client deve attendere un periodo di tempo (metà della latenza, specificata dal valore dell'opzione -d, in millisecondi). Quando il client si riattiva, a metà del periodo di elaborazione, esegue il pull del set successivo di campioni dal motore. Prima che ogni elaborazione passi il ciclo di buffering, il client deve individuare la quantità di dati di acquisizione disponibili in modo che i dati non eseguino il buffer di acquisizione. I dati audio acquisiti dal dispositivo specificato possono essere elaborati abilitando il buffer basato su eventi. Questa modalità è illustrata nell'esempio CaptureSharedEventDriven .
Argomenti correlati