private void ReadHeader() { BinaryReader binaryReader = new BinaryReader(this._stream); if (WaveFile.ReadChunk(binaryReader) != "RIFF") { throw new Exception("Invalid file format"); } binaryReader.ReadInt32(); if (WaveFile.ReadChunk(binaryReader) != "WAVE") { throw new Exception("Invalid file format"); } if (WaveFile.ReadChunk(binaryReader) != "fmt ") { throw new Exception("Invalid file format"); } int num = binaryReader.ReadInt32(); if (num < 16) { throw new Exception("Invalid file format"); } this._formatTag = binaryReader.ReadInt16(); this._isPCM = (this._formatTag == 1); if (binaryReader.ReadInt16() != 2) { throw new Exception("Invalid file format"); } this._sampleRate = binaryReader.ReadInt32(); this._avgBytesPerSec = binaryReader.ReadInt32(); this._blockAlign = binaryReader.ReadInt16(); this._bitsPerSample = binaryReader.ReadInt16(); for (num -= 16; num > 0; num--) { binaryReader.ReadByte(); } while (this._stream.Position < this._stream.Length && WaveFile.ReadChunk(binaryReader) != "data") { num = binaryReader.ReadInt32(); while (this._stream.Position < this._stream.Length && num > 0) { binaryReader.ReadByte(); num--; } } if (this._stream.Position >= this._stream.Length) { throw new Exception("Invalid file format"); } this._length = binaryReader.ReadInt32(); this._dataPos = this._stream.Position; }
private void ReadHeader() { BinaryReader binaryReader = new BinaryReader(this._stream); if (WaveFile.ReadChunk(binaryReader) != "RIFF") { throw new Exception("Invalid file format"); } int num = binaryReader.ReadInt32(); if (WaveFile.ReadChunk(binaryReader) != "WAVE") { throw new Exception("Invalid file format"); } if (WaveFile.ReadChunk(binaryReader) != "fmt ") { throw new Exception("Invalid file format"); } num = binaryReader.ReadInt32(); if (num < 16) { throw new Exception("Invalid file format"); } this._formatTag = binaryReader.ReadInt16(); this._isPCM = (this._formatTag == 1); short num2 = binaryReader.ReadInt16(); if (num2 != 2) { throw new Exception("Invalid file format"); } this._sampleRate = binaryReader.ReadInt32(); this._avgBytesPerSec = binaryReader.ReadInt32(); this._blockAlign = binaryReader.ReadInt16(); this._bitsPerSample = binaryReader.ReadInt16(); for (num -= 16; num > 0; num--) { binaryReader.ReadByte(); } string text = ""; while (this._stream.Position < this._stream.Length) { text = WaveFile.ReadChunk(binaryReader); if (text == "data") { break; } num = binaryReader.ReadInt32(); while (this._stream.Position < this._stream.Length && num > 0) { binaryReader.ReadByte(); num--; } } if (this._stream.Position >= this._stream.Length) { throw new Exception("Invalid file format"); } this._size = binaryReader.ReadInt32(); this._dataPos = this._stream.Position; int num3 = num2 * this._sampleRate * this._bitsPerSample / 8; this._duration = this._size / num3; }