Table of Contents

Class WaveExtensionMethods

Namespace
NAudio.Wave
Assembly
NAudio.Core.dll

Useful extension methods to make switching between WaveAndSampleProvider easier

public static class WaveExtensionMethods
Inheritance
WaveExtensionMethods
Inherited Members

Methods

AsStandardWaveFormat(WaveFormat)

Turns a WAVE_FORMAT_EXTENSIBLE into a standard waveformat if possible. Copes with both WaveFormatExtensible (e.g. one you constructed) and WaveFormatExtraData (how an extensible format read from a file or stream is materialised), unpacking the SubFormat GUID from the raw extra data in the latter case.

public static WaveFormat AsStandardWaveFormat(this WaveFormat waveFormat)

Parameters

waveFormat WaveFormat

Input wave format

Returns

WaveFormat

A standard PCM or IEEE waveformat, or the original waveformat

FollowedBy(ISampleProvider, TimeSpan, ISampleProvider)

Concatenates one sample source on the end of another with silence inserted

public static ISampleProvider FollowedBy(this ISampleProvider sampleProvider, TimeSpan silenceDuration, ISampleProvider next)

Parameters

sampleProvider ISampleProvider
silenceDuration TimeSpan
next ISampleProvider

Returns

ISampleProvider

Init(IWavePlayer, ISampleProvider)

Allows sending an ISampleProvider directly to an IWavePlayer by wrapping it in a SampleToWaveProvider.

public static void Init(this IWavePlayer wavePlayer, ISampleProvider sampleProvider)

Parameters

wavePlayer IWavePlayer
sampleProvider ISampleProvider

Skip(ISampleProvider, TimeSpan)

Skips over a specified amount of time (by consuming source stream)

public static ISampleProvider Skip(this ISampleProvider sampleProvider, TimeSpan skipDuration)

Parameters

sampleProvider ISampleProvider
skipDuration TimeSpan

Returns

ISampleProvider

Take(ISampleProvider, TimeSpan)

Takes a specified amount of time from the source stream

public static ISampleProvider Take(this ISampleProvider sampleProvider, TimeSpan takeDuration)

Parameters

sampleProvider ISampleProvider
takeDuration TimeSpan

Returns

ISampleProvider

ToMono(ISampleProvider, float, float)

Converts a stereo ISampleProvider to mono

public static ISampleProvider ToMono(this ISampleProvider source, float leftVol = 0.5, float rightVol = 0.5)

Parameters

source ISampleProvider
leftVol float
rightVol float

Returns

ISampleProvider

ToSampleProvider(IWaveProvider)

Converts a WaveProvider into a SampleProvider (only works for PCM)

public static ISampleProvider ToSampleProvider(this IWaveProvider waveProvider)

Parameters

waveProvider IWaveProvider

WaveProvider to convert

Returns

ISampleProvider

ToStereo(ISampleProvider, float, float)

Converts a mono ISampleProvider to stereo

public static ISampleProvider ToStereo(this ISampleProvider source, float leftVol = 1, float rightVol = 1)

Parameters

source ISampleProvider
leftVol float
rightVol float

Returns

ISampleProvider

ToWaveProvider(ISampleProvider)

Converts a ISampleProvider to a IWaveProvider but still 32 bit float

public static IWaveProvider ToWaveProvider(this ISampleProvider sampleProvider)

Parameters

sampleProvider ISampleProvider

SampleProvider to convert

Returns

IWaveProvider

An IWaveProvider

ToWaveProvider16(ISampleProvider)

Converts a ISampleProvider to a IWaveProvider and convert to 16 bit

public static IWaveProvider ToWaveProvider16(this ISampleProvider sampleProvider)

Parameters

sampleProvider ISampleProvider

SampleProvider to convert

Returns

IWaveProvider

A 16 bit IWaveProvider