AudioApi 1.0.0
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package AudioApi --version 1.0.0
NuGet\Install-Package AudioApi -Version 1.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="AudioApi" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="AudioApi" Version="1.0.0" />
<PackageReference Include="AudioApi" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add AudioApi --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: AudioApi, 1.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package AudioApi@1.0.0
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=AudioApi&version=1.0.0
#tool nuget:?package=AudioApi&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
AudioApi
AudioApi is a minimal, high-level .NET 8 library for working with audio devices on Windows. It wraps NAudio and provides a clean API for:
- 🎧 Device enumeration (input/output)
- 🔊 Master volume and mute control
- 📈 Peak meter readings
- 🎙️ Microphone capture to WAV
- 🔁 Loopback (system audio) capture to WAV
- ▶️ Playback of WAV, MP3, AIFF files
Installation
dotnet add package AudioApi
Symbols and source link are available for debugging (.snupkg
).
Quickstart
using AudioApi;
using AudioApi.Capture;
using AudioApi.Playback;
using var devices = new AudioDeviceService();
var defOut = devices.GetDefault(AudioFlow.Render);
var vol = new VolumeService(devices);
Console.WriteLine($"Current volume: {vol.GetMasterVolume(defOut.Id):0.00}");
var tempWav = Path.Combine(Path.GetTempPath(), "loopback.wav");
using var loop = new LoopbackCapture();
loop.Start(tempWav);
Thread.Sleep(3000);
loop.Stop();
using var player = new AudioPlayer();
player.Load(tempWav);
player.Play();
Thread.Sleep(3500);
player.Stop();
Features
- Simple, immutable
AudioDeviceInfo
records - Device role awareness (Console, Multimedia, Communications)
- Per-device volume and mute control
- WASAPI-based capture (mic and loopback)
- High-level file playback API
Roadmap
- Per-application session volume
- Cross-platform support (limited by WASAPI)
- Streaming support beyond files
License
MIT License © 2025 Ben Sowieja
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- NAudio (>= 2.2.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.