2015-03-01 9 views

risposta

11

ho capito, ecco la soluzione:

byte[] bytes = new byte[1024]; 

IWaveProvider provider = new RawSourceWaveStream(
         new MemoryStream(bytes), new WaveFormat()); 

_waveOut.Init(provider); 
_waveOut.Play(); 
+0

Questo sta usando NAudio (http://naudio.codeplex.com o NuGet) –

+0

quando suono l'audio è più forte del normale –

2

La risposta accettata presuppone che il flusso di byte è 44,1kHz, 16 bit, stereo. Se avete qualcosa di diverso è necessario fornire la codifica nel WAVEFORMAT

byte[] bytes = new byte[1024]; 

IWaveProvider provider = new RawSourceWaveStream(
         new MemoryStream(bytes), new WaveFormat(48000, 16, 1)); 

_waveOut.Init(provider); 
_waveOut.Play(); 

Se i dati grezzi è in realtà un file wav hai già la codifica nell'intestazione e possibile utilizzare questo metodo

byte[] bytes = new byte[1024]; 

WaveFileReader reader = new WaveFileReader(new MemoryStream(bytes)); 

_waveOut.Init(reader); 
_waveOut.Play(); 
Problemi correlati