Раздел заголовка для создания стерео .Wav - PullRequest
0 голосов
/ 16 октября 2018

Здравствуйте, пытаюсь закодировать правильные спецификации для стерео заголовка .wav для создания файла.Создание монофонического файла работает просто отлично, в то время как попытка записи стереозвука кажется урезанной пополамУверен, что это в разделе заголовка.Оба примера (моно и стерео) представлены ниже.Любое понимание наиболее ценно.

Моно-заголовок - этот код в порядке

    FileStream fsOut = new FileStream(oPath, FileMode.Create, FileAccess.Write);
        BinaryWriter bw = new BinaryWriter(fsOut);
        fsOut.Position = 0;
        bw.Write(new char[4] { 'R', 'I', 'F', 'F' });
        bw.Write(Convert.ToInt32(length));
        bw.Write(new char[8] { 'W', 'A', 'V', 'E', 'f', 'm', 't', ' ' });
        bw.Write((int)16);
        bw.Write((short)1);
        bw.Write((short)1);
        bw.Write(samplerate);
        bw.Write((int)(samplerate * ((BitsPerSample * 1) / 8)));
        bw.Write((short)((BitsPerSample * 1) / 8));
        bw.Write(BitsPerSample);
        bw.Write(new char[4] { 'd', 'a', 't', 'a' });
        bw.Write(Convert.ToInt32(DataLength));

Стерео - это всего лишь половина длины моно

            FileStream fsOut = new FileStream(oPath, FileMode.Create, FileAccess.Write);
        BinaryWriter bw = new BinaryWriter(fsOut);
        fsOut.Position = 0;
        bw.Write(new char[4] { 'R', 'I', 'F', 'F' });
        bw.Write(Convert.ToInt32(length));
        bw.Write(new char[8] { 'W', 'A', 'V', 'E', 'f', 'm', 't', ' ' });
        bw.Write((int)16);
        bw.Write((short)1);
        bw.Write((short)2);
        bw.Write(samplerate);
        bw.Write((int)(samplerate * ((BitsPerSample * 2) / 8)));
        bw.Write((short)((BitsPerSample * 2) / 8));
        bw.Write(BitsPerSample);
        bw.Write(new char[4] { 'd', 'a', 't', 'a' });
        bw.Write(Convert.ToInt32(DataLength));

1 Ответ

0 голосов
/ 16 октября 2018

Таким образом, проблема заключается в синусоидах, которые я пишу в теле, а не в заголовке.

...