2015-03-01 7 views
5
byte[] bytes = new byte[1024]; 

मान लें bytes ऑडियो कच्चे डेटा से भरा एक सरणी है।मैं NAudio का उपयोग कर ऑडियो कच्चे डेटा के बाइट सरणी कैसे चला सकता हूं?

मैं WaveOut ऑब्जेक्ट का उपयोग करके इस बाइट सरणी को कैसे चला सकता हूं?

_waveOut.Init(bytes); // <- Error: cannot resolve method. 
_waveOut.Play(); 

उत्तर

11

मैं यह पता लगा, यहाँ समाधान है:

byte[] bytes = new byte[1024]; 

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

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

यह NAudio (http://naudio.codeplex.com या यद्यपि NuGet) का उपयोग कर रहा है –

+0

जब मैं ऑडियो पिच खेलता हूं तो सामान्य से अधिक होता है –

2

स्वीकार किए जाते हैं जवाब मान लिया गया बाइट धारा 44,1kHz, 16 बिट, स्टीरियो है। आप कुछ पूछना चाहते हैं तो किसी और आप WaveFormat में कोडिंग प्रदान करने के लिए

byte[] bytes = new byte[1024]; 

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

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

अपने कच्चे डेटा एक wav फ़ाइल आप पहले से ही शीर्षक में एन्कोडिंग है और इस विधि का उपयोग कर सकते हैं वास्तव में है

byte[] bytes = new byte[1024]; 

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

_waveOut.Init(reader); 
_waveOut.Play(); 
संबंधित मुद्दे