Example #1
0
        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);
                }
        }
Example #2
0
 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);
         }
     }
 }