NAudio.Extras
3.1.0-preview.1
Prefix Reserved
dotnet add package NAudio.Extras --version 3.1.0-preview.1
NuGet\Install-Package NAudio.Extras -Version 3.1.0-preview.1
<PackageReference Include="NAudio.Extras" Version="3.1.0-preview.1" />
<PackageVersion Include="NAudio.Extras" Version="3.1.0-preview.1" />
<PackageReference Include="NAudio.Extras" />
paket add NAudio.Extras --version 3.1.0-preview.1
#r "nuget: NAudio.Extras, 3.1.0-preview.1"
#:package NAudio.Extras@3.1.0-preview.1
#addin nuget:?package=NAudio.Extras&version=3.1.0-preview.1&prerelease
#tool nuget:?package=NAudio.Extras&version=3.1.0-preview.1&prerelease
NAudio.Extras
Extra, opinionated helpers built on top of NAudio. Targets net9.0 and net9.0-windows10.0.19041.0.
What's included
Utilities that don't belong in the core library but are still useful across projects — for example playlist helpers, ID3 tag readers, Equalizer sample providers, and other community-contributed extras.
When to use it
Install NAudio.Extras when you want these convenience helpers in addition to the main NAudio APIs. It depends on both NAudio and (on Windows) NAudio.Wasapi, so it pulls in the full playback/capture stack.
This package is not required for typical NAudio usage — start with the main NAudio package and add NAudio.Extras only if you need one of the helpers it contains.
See the NAudio documentation site for tutorials and the full API reference, or the GitHub repository for source and documentation.
License
MIT.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. 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. net9.0-windows7.0 is compatible. net9.0-windows10.0.19041 is compatible. 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. |
-
net9.0
- NAudio (>= 3.1.0-preview.1)
- NAudio.Core (>= 3.1.0-preview.1)
-
net9.0-windows10.0.19041
- NAudio (>= 3.1.0-preview.1)
- NAudio.Core (>= 3.1.0-preview.1)
- NAudio.Wasapi (>= 3.1.0-preview.1)
-
net9.0-windows7.0
- NAudio (>= 3.1.0-preview.1)
- NAudio.Core (>= 3.1.0-preview.1)
- NAudio.Wasapi (>= 3.1.0-preview.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories (2)
Showing the top 2 popular GitHub repositories that depend on NAudio.Extras:
| Repository | Stars |
|---|---|
|
dorisoy/Dorisoy.Pan
Dorisoy.Pan 是基于 .NET 10 的跨平台文档管理系统,使用 MS SQL 2012 / MySQL 8.0(或更高版本)后端数据库,您可以在 Windows、Linux 或 Mac 上运行它。项目中的所有方法都是异步的,支持 JWT 令牌身份验证,项目体系结构遵循 CQRS + MediatR 模式和最佳安全实践。源代码完全可定制,热插拔且清晰的体系结构,使开发定制功能和遵循任何业务需求变得容易。
|
|
|
AlizerUncaged/waifu-desktop
🎂 your waifu, right on your desktop!
|
| Version | Downloads | Last Updated |
|---|---|---|
| 3.1.0-preview.1 | 26 | 9/4/2026 |
| 3.0.2-preview.2 | 57 | 8/27/2026 |
| 3.0.2-preview.1 | 55 | 8/20/2026 |
| 3.0.1 | 170 | 8/18/2026 |
| 3.0.1-preview.1 | 63 | 8/17/2026 |
| 3.0.0 | 123 | 8/15/2026 |
| 3.0.0-preview.20 | 74 | 8/8/2026 |
| 3.0.0-preview.19 | 93 | 7/25/2026 |
| 3.0.0-preview.18 | 63 | 7/16/2026 |
| 3.0.0-preview.17 | 72 | 7/11/2026 |
| 3.0.0-preview.16 | 77 | 7/1/2026 |
| 3.0.0-preview.15 | 67 | 6/28/2026 |
| 3.0.0-preview.14 | 75 | 6/25/2026 |
| 3.0.0-preview.10 | 77 | 6/8/2026 |
| 3.0.0-preview.9 | 74 | 5/27/2026 |
| 3.0.0-preview.8 | 84 | 5/22/2026 |
| 3.0.0-preview.7 | 68 | 5/21/2026 |
| 3.0.0-preview.6 | 76 | 5/21/2026 |
| 3.0.0-preview.5 | 72 | 5/11/2026 |
| 2.4.0 | 83 | 8/26/2026 |
* Fixed two infinite loops in the WAV parser triggered by corrupt files declaring a negative chunk size. An RF64 `ds64` chunk with a negative `dataChunkLength`, or a `LIST/adtl` sub-chunk with a negative size, made the chunk walk advance by zero bytes per iteration and spin at 100% CPU without throwing. Negative and oversized sizes are now rejected where they are read, and an undersized `ds64` chunk throws `FormatException` rather than `ArgumentOutOfRangeException` (#1428)
* Fixed `WaveIn`/`WaveOut` failing under Native AOT with `WaveHeaderUnprepared` ("The wave header was not prepared"). The `WAVEHDR` was a `[StructLayout]` class passed to winmm by value, which CoreCLR pins in place but NativeAOT copies into a per-call temporary, so the driver's `WHDR_PREPARED`/`WHDR_DONE`/`dwBytesRecorded` writes were discarded. It is now a struct in a stable unmanaged block (#1425)
* Fixed `WaveFormat.MarshalToPtr` and `WaveFormat.MarshalFromPtr` corrupting any `WaveFormat` subclass under Native AOT — the AOT marshaller drops the inherited `WAVEFORMATEX` fields of a class hierarchy, so a `WaveFormatExtensible` was written with its SubFormat GUID over the sample rate. Every remaining site that sized or wrote a `WaveFormat` with `Marshal.SizeOf`/`StructureToPtr` was converted too: WASAPI (`AudioClient`), Media Foundation (`MFInitMediaTypeFromWaveFormatEx`, reachable from `MediaFoundationResampler`/`MediaFoundationEncoder`), DMO (`DmoMediaType.SetWaveFormat`, `MediaObject`) and ACM (`AcmStream`, `AcmDriver`) (#1425)
* Added `WaveFormat.ToWaveFormatExBytes()`, which renders a `WaveFormat` as a native WAVEFORMATEX byte array. `MarshalToPtr` is now a thin wrapper over it, for callers who need an unmanaged block rather than a buffer they already own (#1425)
* `WaveFormat.MarshalToPtr` now always allocates at least the `18 + cbSize` bytes it advertises. A `WaveFormat` subclass that declares `extraSize` but doesn't write it in `Serialize` previously produced a block shorter than its own `cbSize`, which a native consumer would read past (#1425)
* **Breaking:** `AudioClient.IsFormatSupported` and `WasapiPlayer.IsFormatSupported` now return the closest-match format as `out WaveFormat` rather than `out WaveFormatExtensible`. WASAPI documents this format as either a `WAVEFORMATEX` or a `WAVEFORMATEXTENSIBLE`, and the old signature could only represent the latter — a plain format was previously decoded as a `WaveFormatExtensible` whose base fields were valid but whose extensible fields were meaningless. Callers needing the extensible fields should pattern-match (#1425)
* Added a `Serialize` override to `Mp3WaveFormat`, which previously advertised `cbSize` = 12 but wrote none of its 12 MPEGLAYER3WAVEFORMAT extra bytes (#1425)
* `NAudio.WinMM` is now marked `IsAotCompatible`, and the AOT smoke test covers the winmm WAVEHDR/WAVEFORMATEX paths (#1425)
* Fixed `Mp3FileReaderBase` seeking silently restarting playback from the beginning of the file on MP3s with a Xing/Info header — the lazy frame index was gated on `IsLengthExact`, which such a header sets without any frame having been scanned. Also fixed seeks landing on the wrong frame when the target fell exactly on a frame boundary, and Xing/Info header frames being indexed as audio (shifting every seek in those files ~26 ms early). A 3.0.0 regression (#1419)
* Fixed `WdlResamplingSampleProvider` losing samples, and eventually returning 0 permanently, when asked for more output than the source could supply — a 3.0.0 regression that broke the common pattern of reading generously from a `BufferedWaveProvider`-backed capture chain. `WdlResampler.ResampleOut` also no longer drifts in input-driven (feed) mode when handed fewer samples than `ResamplePrepare` requested (#1412)