C # - dados falsos quando o carregamento de um ficheiro WAV * a matriz de bytes
Pergunta
Eu estou tentando carregar um arquivo * .wav para uma matriz de bytes usando C # 3.0 e .NET 3.5 como esta:
var fs = File.Open(filedialog.FileName, FileMode.Open,FileAccess.Read);
long numBytes = new FileInfo(filedialog.FileName).Length;
BinaryReader br = new BinaryReader(fs);
byte[] bytes = br.ReadBytes((int)numBytes);
De byte [58] e para a extremidade (~ 50k bytes) todos os valores são 127 ou 128 (acho que os primeiros 58 bytes são ~ material cabeçalho?).
O arquivo de onda está jogando muito bem no player de mídia Windows e outros jogadores, e tenho certeza que não é nada de errado com ele (é gravado com o gravador de som em WinXP).
Ondas info:
BitRate : 176kbps
tamanho Áudio amostra : 8bit
taxa de amostragem de áudio : 22kHz
Formato de áudio : PCM
Quando tento jogar o fluxo de bytes utilizando o .NET SoundPlayer soa terrível :-) Alguma idéia?
[RESOLVIDO]
Este não era o problema depois de tudo, então eu vou ter que continuar minha pesquisa para o bug real.
Solução
O código parece certo, tanto quanto eu posso ver.
Você poderia tentar o código mais simples:
byte[] bytes = File.ReadAllBytes(filedialog.FileName);