На данный момент мне удалось разделить левый и правый канал файла WAVE и включить заголовок в массив byte []. Следующим моим шагом будет воспроизведение обоих каналов. Как это может быть сделано?
Вот фрагмент кода:
byte[] song_left = new byte[fa.Length];
byte[] song_right = new byte[fa.Length];
int p = 0;
for (int c = 0; c < 43; c++)
{
song_left[p] = header[c];
p++;
}
int q = 0;
for (s = startByte; s < length; s = s + 3)
{
song_left[s] = sLeft[q];
q++;
s++;
song_left[s] = sLeft[q];
q++;
}
p = 0;
for (int c = 0; c < 43; c++)
{
song_right[p] = header[c];
p++;
}
Эта часть считывает заголовок и данные как из правого, так и из светлого канала и сохраняет их в массивах sLeft [] и sRight []. Эта часть работает отлично.
Получив байтовые массивы, я сделал следующее:
System.IO.File.WriteAllBytes("c:\\left.wav", song_left);
System.IO.File.WriteAllBytes("c:\\right.wav", song_right);
Добавлена кнопка для воспроизведения сохраненного волнового файла:
private void button2_Click(object sender, EventArgs e)
{
spWave = new SoundPlayer("c:\\left.wav");
spWave.Play();
}
Когда я нажимаю кнопку воспроизведения, появляется эта ошибка:
Необработанное исключение типа 'System.InvalidOperationException'
произошло в System.dll
Дополнительная информация: заголовок волны поврежден.
Есть идеи?