Esempio n. 1
0
        public void WriteWave(Stream Stream, StereoShortSoundSample[] Samples)
        {
            this.Stream       = Stream;
            this.BinaryWriter = new BinaryWriter(Stream);

            WriteChunk("RIFF", () =>
            {
                Stream.WriteStringz("WAVE", 4, Encoding.ASCII);
                WriteChunk("fmt ", () =>
                {
                    Stream.WriteStruct(new WaveFormat()
                    {
                        CompressionCode  = 1,
                        SampleRate       = 44100,
                        NumberOfChannels = 2,
                        BytesPerSecond   = 44100 * sizeof(short) * 2,
                        BlockAlignment   = sizeof(short) * 2,
                        BitsPerSample    = 16,
                        Padding          = 0,
                    });
                });
                WriteChunk("data", () =>
                {
                    BinaryWriter.Write(PointerUtils.ArrayToByteArray(Samples));

                    /*
                     * foreach (var Sample in Samples)
                     * {
                     *  BinaryWriter.Write(Sample.Left);
                     *  BinaryWriter.Write(Sample.Right);
                     * }
                     */
                });
            });
        }