Table of Contents

Class Mp3FileReaderBase

Namespace
NAudio.Wave
Assembly
NAudio.Core.dll

Class for reading from MP3 files

public class Mp3FileReaderBase : WaveStream, IDisposable, IAsyncDisposable, IWaveProvider
Inheritance
Mp3FileReaderBase
Implements
Inherited Members
Extension Methods

Constructors

Mp3FileReaderBase(Stream, FrameDecompressorBuilder)

Opens MP3 from a stream rather than a file Will not dispose of this stream itself

public Mp3FileReaderBase(Stream inputStream, Mp3FileReaderBase.FrameDecompressorBuilder frameDecompressorBuilder)

Parameters

inputStream Stream

The incoming stream containing MP3 data

frameDecompressorBuilder Mp3FileReaderBase.FrameDecompressorBuilder

Factory method to build a frame decompressor

Mp3FileReaderBase(Stream, FrameDecompressorBuilder, bool)

protected Mp3FileReaderBase(Stream inputStream, Mp3FileReaderBase.FrameDecompressorBuilder frameDecompressorBuilder, bool ownInputStream)

Parameters

inputStream Stream
frameDecompressorBuilder Mp3FileReaderBase.FrameDecompressorBuilder
ownInputStream bool

Mp3FileReaderBase(string, FrameDecompressorBuilder)

Supports opening a MP3 file

public Mp3FileReaderBase(string mp3FileName, Mp3FileReaderBase.FrameDecompressorBuilder frameDecompressorBuilder)

Parameters

mp3FileName string

MP3 File name

frameDecompressorBuilder Mp3FileReaderBase.FrameDecompressorBuilder

Factory method to build a frame decompressor

Properties

Id3v1Tag

ID3v1 tag if present

public byte[] Id3v1Tag { get; }

Property Value

byte[]

Id3v2Tag

ID3v2 tag if present

public Id3v2Tag Id3v2Tag { get; }

Property Value

Id3v2Tag

Length

This is the length in bytes of data available to be read out from the Read method (i.e. the decompressed MP3 length) n.b. this may return 0 for files whose length is unknown

public override long Length { get; }

Property Value

long

Mp3WaveFormat

The MP3 wave format (n.b. NOT the output format of this stream - see the WaveFormat property)

public Mp3WaveFormat Mp3WaveFormat { get; }

Property Value

Mp3WaveFormat

Position

public override long Position { get; set; }

Property Value

long

WaveFormat

public override WaveFormat WaveFormat { get; }

Property Value

WaveFormat

XingHeader

Xing header if present

public XingHeader XingHeader { get; }

Property Value

XingHeader

Methods

Dispose(bool)

Disposes this WaveStream

protected override void Dispose(bool disposing)

Parameters

disposing bool

Read(byte[], int, int)

Reads decompressed PCM data from our MP3 file.

public override int Read(byte[] sampleBuffer, int offset, int numBytes)

Parameters

sampleBuffer byte[]
offset int
numBytes int

Returns

int

ReadNextFrame()

Reads the next mp3 frame

public Mp3Frame ReadNextFrame()

Returns

Mp3Frame

Next mp3 frame, or null if EOF