Domanda

Sto cercando di caricare un file * .wav a un array di byte utilizzando C # 3.0 e .NET 3.5 in questo modo:

  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);

Da byte [58] e alla fine (~ byte 50k) tutti i valori sono 127 o 128 (immagino il primo roba ~ 58 byte sono intestazione?).

Il file wave sta giocando bene in Windows media player e altri giocatori, e sono sicuro che c'è niente di sbagliato con esso (è registrato con il registratore di suoni in WinXP).

Info file Wave:

BitRate : 176kbps
Audio dimensione del campione : 8bit
frequenza di campionamento audio : 22kHz
Formato audio : PCM

Quando si tenta di riprodurre il flusso di byte utilizzando il .NET SoundPlayer suona terribile :-) Tutte le idee?

[risolto]
Questo non era il problema, dopo tutto, quindi dovrò continuare la mia ricerca del vero e proprio bug.

È stato utile?

Soluzione

Il codice è tutto a posto, per quanto posso vedere.

Si potrebbe provare il codice più semplice:

byte[] bytes = File.ReadAllBytes(filedialog.FileName);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top