static public void NewTest() { VorbisFile.OggVorbis_File vf = new VorbisFile.OggVorbis_File(); Console.WriteLine(VorbisFile.ov_fopen("stop.ogg", ref vf)); Vorbis.vorbis_info vi = VorbisFile.ov_info(ref vf, -1); int buffersize = 44100; byte *buffer = stackalloc byte [buffersize]; FileStream stream = File.Create ( "C:\\" + Guid.NewGuid().ToString() + ".wav" ); // while (true) try { int bitstream = 0; int ret = 0; while (true) { ret = VorbisFile.ov_read(ref vf, buffer, buffersize, 0, 2, 1, ref bitstream); if (ret <= 0) { return; } Console.WriteLine(ret); byte[] buffer_managed = new byte [ret]; Marshal.Copy((IntPtr)buffer, buffer_managed, 0, buffer_managed.Length); stream.Write(buffer_managed, 0, buffer_managed.Length); } } finally { stream.Close(); stream.Dispose(); } }