2025-11-28 00:35:46 +09:00

62 lines
1.8 KiB
Markdown

---
page_type: sample
languages:
- cpp
- cppwinrt
products:
- windows-api-win32
name: Windows Audio Session (WASAPI) rendering sample
urlFragment: wasapi-rendering
description: Renders audio data using the Windows Audio Session API (WASAPI)
extendedZipContent:
- path: LICENSE
target: LICENSE
---
# Windows Audio Session (WASAPI) rendering sample
This sample demonstrates rendering audio data using the Windows Audio Session API (WASAPI).
The sample renders audio in shared mode using the event driven programming model.
The following additional features are demonstrated:
* Using `IAudioViewManagerService` to associate the audio stream with a window.
If you do not explicitly associate the stream with a window,
the system will try to guess which window to use.
Use the `-w` command line option to associate the audio stream with the console window.
Support for the `IAudioViewManagerService` interface requires SDK version 10.0.22470.0 or higher.
## Sample language
C++ with the C++/WinRT library
## Sample structure
The main program is in `WASAPIRendering.cpp`.
It parses the command line and uses a `CWASAPIRenderer` object
to perform the rendering.
The `CWASAPIRenderer` is implemented in `WASAPIRenderer.cpp`.
It uses WASAPI to render a buffer containing audio data.
The audio samples are generated by `ToneGen.h`.
The command line parser is in `CmdLine.cpp`
## Related samples
More audio samples can be found in the `Samples/Win7Samples/multimedia/audio` directory.
## To build the sample using Visual Studio
* Load the .sln (solution) file into Visual Studio.
* In the Build menu, select Build Solution.
The application will be built in the default \Debug or \Release directory
## To run the sample
Go to the build output directory and type `wasapirendering.exe`.
You can add the `-?` flag to see command line options.