public override void WriteToStream(Stream stream) { using (Stream source = Source.GetStream()) using (BinaryReader reader = new BinaryReader(source, Encoding.ASCII, true)) { string magic = Encoding.ASCII.GetString(reader.ReadBytes(3)); if (Magic != magic) { throw new InvalidDataException("Supplied file is not an XGG wrapped file."); } byte version = reader.ReadByte(); if (version != Version) { throw new InvalidDataException("Supplied XGG wrapped file is of an incompatible version."); } FrameSize = reader.ReadInt32(); Bitrate = reader.ReadInt32(); uint count = reader.ReadUInt16(); using (OpusWaveProvider wav = new OpusWaveProvider(source, count)) WaveFileWriter.WriteWavFileToStream(stream, wav); } }
public override void WriteToStream(Stream stream) { using (Stream source = Source.GetStream()) { //byte[] buffer = new byte[Source.Size]; //source.Read(buffer, 0, (int)Source.Size); //using (MemoryStream mem = new MemoryStream(buffer)) //using (Mp3FileReader mp3 = new Mp3FileReader(mem)) using (OpusWaveProvider wav = new OpusWaveProvider(source, Source.Size)) { WaveFileWriter.WriteWavFileToStream(stream, wav); } } }