Dela via


RenderExclusiveTimerDriven

Det här exempelprogrammet använder Core Audio API:er för att återge ljuddata till en utdataenhet som användaren har angett. Det här exemplet visar timerdriven buffring för en renderingsklient i exklusivt läge. För en ström i exklusivt läge delar klienten slutpunktsbufferten med ljudenheten.

Det här avsnittet innehåller följande avsnitt.

Beskrivning

Det här exemplet visar följande funktioner.

  • MMDevice API- för multimedieenhetsuppräkning och val.
  • WASAPI för dataströmhanteringsåtgärder.

Krav

Produkt Version
Windows SDK Windows 7
Visual Studio 2008

 

Ladda ned exemplet

Det här exemplet är tillgängligt på följande platser.

Plats Sökväg/URL
Windows SDK \Program Files\Microsoft SDKs\Windows\v7.0\Samples\Multimedia\Audio\RenderExclusiveTimerDriven\...

 

Skapa exemplet

Använd följande steg för att skapa exemplet RenderExclusiveTimerDriven:

  1. Öppna CMD-gränssnittet för Windows SDK och ändra till exempelkatalogen RenderExclusiveTimerDriven.
  2. Kör kommandot start WASAPIRenderExclusiveTimerDriven.sln i katalogen RenderExclusiveTimerDriven för att öppna projektet WASAPIRenderExclusiveTimerDriven i Visual Studio-fönstret.
  3. I fönstret väljer du Felsöka eller Version lösningskonfiguration, väljer menyn Skapa på menyraden och väljer alternativet Skapa. Om du inte öppnar Visual Studio från CMD-gränssnittet för SDK:t har Visual Studio inte åtkomst till SDK-byggmiljön. I så fall skapas inte exemplet om du inte uttryckligen anger miljövariabeln MSSdk, som används i projektfilen WASAPIRenderExclusiveTimerDriven.vcproj.

Visa exempelfilerna

Om du skapar demoprogrammet genereras en körbar fil WASAPIRenderExclusiveTimerDriven.exe. Om du vill köra den skriver du WASAPIRenderExclusiveTimerDriven i ett kommandofönster följt av obligatoriska eller valfria argument. I följande exempel visas hur du kör exemplet med en angiven uppspelningstid på standardkonsolenheten.

WASAPIRenderExclusiveTimerDriven.exe -d 20 -console

I följande tabell visas argumenten.

Argument Beskrivning
-? Visar hjälp.
-h Visar hjälp.
-f Sinusvågfrekvens i Hz.
-L Svarstid för ljudåtergivning i millisekunder.
-d Sinusvågens varaktighet i sekunder.
-m Inaktiverar användningen av MMCSS.
-konsol Använd standardkonsolenheten.
-kommunikation Använd standardkommunikationsenheten.
-multimedia Använd standardmedieenheten.
-Slutpunkt Använd slutpunktsidentifieraren som anges i växelvärdet.

 

Om programmet körs utan argument räknas de tillgängliga enheterna upp och användaren uppmanas att välja en enhet för återgivningssessionen. När användaren har specificerat en enhet renderar programmet en sinusvåg på 440 Hz i 10 sekunder. Dessa värden kan ändras genom att ange -f och -d växla värden.

RenderExclusiveTimerDriven demonstrerar timerdriven buffring. I det här läget måste klienten vänta en tid (hälften av svarstiden, som anges av -d växelvärde, i millisekunder). När klienten vaknar, halvvägs genom bearbetningsperioden, hämtar den nästa uppsättning exempel från motorn. Innan varje bearbetning skickas i buffertloopen måste klienten ta reda på mängden data som ska återges så att data inte överskrider bufferten.

Ljuddata som ska spelas upp på den angivna enheten kan bearbetas genom aktivering av händelsedriven buffring. Det här läget visas i exemplet RenderExclusiveTimerDriven.

Mer information om hur du återger en ström finns i Rendering a Stream.

SDK-exempel som använder Core Audio API:er