현재 WAVE 파일의 왼쪽 및 오른쪽 채널을 분리하고 헤더를 byte [] 배열에 포함 시켰습니다. 다음 단계는 두 채널을 모두 재생하는 것입니다. 어떻게 할 수 있습니까?C#에서 추출 된 웨이브 파일 바이트 배열을 재생하는 방법은 무엇입니까?
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();
}
을,이 오류가 appers :
처리되지 않은 'System.InvalidOperationException'형식의 예외 이 System.dl에서 발생했습니다. l
추가 정보 : 웨이브 헤더가 손상되었습니다.
아이디어가 있으십니까?
어떤 도움을 누구 아래 http://alvas.net/alvas.audio.aspx
코드에서 방법을 AudioCompressionManager.SplitStereo 사용 "웨이브 파일의 왼쪽과 오른쪽 채널이 분리?" –
나는 그것을 해결할 수 있었다 :) –
다른 사람들에게 도움이되는 방법에 대한 설명을 추가한다. – AShelly