Извините, что прерываю вас в новогоднее время, но мне действительно нужна помощь!У меня есть файл необработанных данных.Я добавляю к нему заголовок wav, используя:
sound.Add(0x52);
sound.Add(0x49);
sound.Add(0x46);
sound.Add(0x46);
sound.Add(0x24); //sound.Add(0x00);
sound.Add(0x80); //sound.Add(0x00);
sound.Add(0xb8); //sound.Add(0x00);
sound.Add(0x05); //sound.Add(0x00);
sound.Add(0x57);
sound.Add(0x41);
sound.Add(0x56);
sound.Add(0x45);
sound.Add(0x66);
sound.Add(0x6d);
sound.Add(0x74);
sound.Add(0x20);
sound.Add(0x10);
sound.Add(0x00);
sound.Add(0x00);
sound.Add(0x00);
sound.Add(0x01);
sound.Add(0x00);
sound.Add(0x04); //4
sound.Add(0x00);
sound.Add(0x40);
sound.Add(0x1f);
sound.Add(0x00);
sound.Add(0x00);
sound.Add(0x00);
sound.Add(0x7d);
sound.Add(0x00);
sound.Add(0x00);
sound.Add(0x04);
sound.Add(0x00);
sound.Add(0x08);
sound.Add(0x00);
sound.Add(0x64);
sound.Add(0x61);
sound.Add(0x74);
sound.Add(0x61);
sound.Add(0x00);
sound.Add(0x80);
sound.Add(0xb8);
sound.Add(0x05);
sound.Add(0x00);
sound.Add(0x80);
sound.Add(0x00);
sound.Add(0x00);
Да, это ужасно, но я новичок в работе со звуком.Звук - это Список байтов, который я получаю из файла.Затем я пытаюсь воспроизвести этот байтовый массив:
using (MemoryStream ms = new MemoryStream(sound.ToArray())) {
SoundPlayer sp = new SoundPlayer(ms);
sp.Play();
}
Но я ничего не слышу от звукового проигрывателя. Однако, когда я переключаю количество каналов на 2 и PCM на 16, все в порядке, но звук«испорчен», и я не слышу того, что мне действительно нужно услышать. |Кроме того, когда я записываю этот список байтов в wav-файл и пытаюсь его воспроизвести, то проигрыватель Windows MediaPlayer воспроизводится нормально.Итак, почему я не играю на 8-битном 2-канальном?Или проще программно сменить PCM на 16 бит, но как?