MP3 decoding til PCM byte stream
Jeg skal analysere lydfiler, og for at kunne gøre dette på mp3 filer bruger jeg en mp3-decoder ved navn MP3Stream, som extender Stream classen. Jeg bruger følgende kode til at få filens PCM data ud i et byte array:string Mp3FilePath = @"C:\Users\gotler\Desktop\Zombie.mp3";
Mp3Stream stream = new Mp3Stream(Mp3FilePath);
// Create the buffer
int numberOfPcmBytesToReadPerChunk = 512;
byte[] buffer = new byte[numberOfPcmBytesToReadPerChunk];
List<byte> tempPCM = new List<byte>();
int bytesReturned = -1;
int totalBytes = 0;
while (bytesReturned != 0){
bytesReturned = stream.Read(buffer, 0, buffer.Length);
//Console.WriteLine(buffer[5]);
tempPCM.AddRange(buffer);
totalBytes += bytesReturned;
}
Herefter burde tempPCM indeholde min PCM byte stream. Men listen er alt for lang, med over 58 mio. pladser for en 331 sekunder sang ved 44100 hz samplerate. Og indholdet ligner bare støj, i stedet for "lyd-bølger".
På forhånd tak.