예제 #1
0
 public Player(Stream stream)
 {
     Stream = stream;
     Decoder = new OggVorbisDecoder(stream);
     if (Decoder.Channels != 1)
         throw new InvalidDataException("Only mono sounds supported");
     WaveOut = new WaveOut(WaveOut.Devices[0], Decoder.SamplesPerSecond, 16, Decoder.Channels);
     Thread = new Thread(ThreadFunc);
     Thread.Start();
 }
 public Player(Stream stream)
 {
     Stream  = stream;
     Decoder = new OggVorbisDecoder(stream);
     if (Decoder.Channels != 1)
     {
         throw new InvalidDataException("Only mono sounds supported");
     }
     WaveOut = new WaveOut(WaveOut.Devices[0], Decoder.SamplesPerSecond, 16, Decoder.Channels);
     Thread  = new Thread(ThreadFunc);
     Thread.Start();
 }
예제 #3
0
        static public void OldTest()
        {
            OggVorbisDecoder decompressor = new OggVorbisDecoder();

            FileStream inputStream  = File.OpenRead("intro.ogg");
            FileStream outputStream = File.Create("C:\\" + Guid.NewGuid().ToString() + ".raw");

            while (inputStream.Position < inputStream.Length)
            {
                byte[] buffer       = new byte [4096];
                byte[] resultBuffer = null;

                inputStream.Read(buffer, 0, buffer.Length);

                if (decompressor.Decode(buffer, ref resultBuffer) == true)
                {
                    outputStream.Write(resultBuffer, 0, resultBuffer.Length);
                }
            }
        }