Exemplo n.º 1
0
        public static void ToFile(IAudioStream source, string path)
        {
            using (FileStream stream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None, 8, FileOptions.SequentialScan))
            {
                //Estimate size
                int outLen = 44 + (source.Samples * source.Channels * 2);

                //Create file map
                stream.SetLength(outLen);
                using (FileMap map = FileMap.FromStreamInternal(stream, FileMapProtect.ReadWrite, 0, outLen))
                {
                    RIFFHeader *riff = (RIFFHeader *)map.Address;
                    *           riff = new RIFFHeader(1, source.Channels, 16, source.Frequency, source.Samples);

                    source.SamplePosition = 0;
                    source.ReadSamples(map.Address + 44, source.Samples);
                }
            }
        }
Exemplo n.º 2
0
        public static void ToFile(IAudioStream source, string path)
        {
            using (FileStream stream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None, 8, FileOptions.SequentialScan))
            {
                //Estimate size
                int outLen = 44 + (source.Samples * source.Channels * 2);

                //Create file map
                stream.SetLength(outLen);
                using (FileMap map = FileMap.FromStreamInternal(stream, FileMapProtect.ReadWrite, 0, outLen))
                {
                    RIFFHeader* riff = (RIFFHeader*)map.Address;
                    *riff = new RIFFHeader(1, source.Channels, 16, source.Frequency, source.Samples);

                    source.SamplePosition = 0;
                    source.ReadSamples(map.Address + 44, source.Samples);
                }
            }
        }