2010-04-19 10 views
9

मैं बाइट नामक बाइट सरणी में संग्रहीत एक वाव ध्वनि चलाने की कोशिश कर रहा हूं। मुझे पता है कि मुझे बाइट सरणी को WAV फ़ाइल में परिवर्तित करना चाहिए और इसे अपने स्थानीय ड्राइव में सहेजना चाहिए, फिर सहेजी गई फ़ाइल कहा जाता है लेकिन मैं बाइट सरणी को WAV फ़ाइल में कनवर्ट करने में सक्षम नहीं था।बाइट सरणी को Wav फ़ाइल में कनवर्ट करें

कृपया मुझे wav sound से wav फ़ाइल में बाइट एरीरी को परिवर्तित करने के लिए नमूना कोड देने में मेरी सहायता करें।

यहाँ मेरी कोड है:

protected void Button1_Click(object sender, EventArgs e) 
{ 
    byte[] bytes = GetbyteArray(); 

    //missing code to convert the byte array to wav file 

    ..................... 

    System.Media.SoundPlayer myPlayer = new System.Media.SoundPlayer(myfile); 
    myPlayer.Stream = new MemoryStream(); 
    myPlayer.Play(); 
} 
+0

जिज्ञासा से बाहर: आपको पहली जगह बाइट सरणी में ध्वनि कैसे मिली? – Svish

+0

यह एक शब्दकोश प्रोजेक्ट के अलावा है जो http://www.merriam-webster.com/ से मेरे शब्दकोश में प्रत्येक शब्द की ध्वनि डाउनलोड करता है। और यहां बाइट सरणी में डाउनलोड और सहेजी गई Wav फ़ाइल का नमूना: http: //media.merriam-webster.com/soundc11/g/good0001। – Eyla

+0

हाय आईला, क्या आप एंड्रॉइड में एक बाइट सरणी में तरंग प्रारूप फ़ाइल पढ़ने के लिए कोड प्रदान कर सकते हैं। बहुत आभारी रहें। – Joyson

उत्तर

9

इस प्रयास करें:

System.IO.File.WriteAllBytes("yourfilepath.wav", bytes); 
+0

आपकी मदद के लिए धन्यवाद। आपका कोड मेरे लिए काम करता है और बाइट सरणी को WAV फ़ाइल में परिवर्तित करता है और इसे दिए गए पथ में सहेजा जाता है लेकिन समस्या जब मैं उपयोग करता हूं: सिस्टम। मीडिया। साउंडप्लेयर myPlayer = new System.Media.SoundPlayer (myfile); इसे खेलने के लिए मुझे त्रुटि मिलेगी: लहर लहर हेडर भ्रष्ट है। लेकिन जब मैं फ़ाइल चलाने के लिए विंडोज मीडिया प्लेयर का उपयोग करता हूं तो यह काम करेगा। इस समस्या को बचाने के लिए कोई सलाह? – Eyla

+0

मैंने अभी आपके द्वारा प्रदान किए गए यूआरएल की कोशिश की और यह काम किया: 'नया सिस्टम। मीडिया। साउंडप्लेयर (@ "http://media.merriam-webster.com/soundc11/g/good0001")। प्ले(); '- शायद समस्या डाउनलोड कोड है? –

+3

यहां समस्या दूषित डेटा नहीं है। ओपी में केवल कच्चे ऑडियो बाइट हैं। उन्हें बाइट सरणी से पहले फ़ाइल करने के लिए WAV शीर्षलेख लिखना होगा और बड़े/छोटे एंडियन प्रारूपों की क्षतिपूर्ति करना होगा। मैं इसे करने के लिए कुछ साफ कोड भी ढूंढ रहा हूं। –

7

आप File.WriteAllBytes(path, data) या की तरह कुछ का उपयोग कर सकते हैं ...

... वैकल्पिक रूप से अगर आप नहीं चाहते हैं फ़ाइल लिखने के लिए आप बाइट सरणी को एक स्ट्रीम में परिवर्तित कर सकते हैं और फिर इसे चला सकते हैं ...

var bytes = File.ReadAllBytes(@"C:\WINDOWS\Media\ding.wav"); // as sample 

using (Stream s = new MemoryStream(bytes)) 
{ 
    // http://msdn.microsoft.com/en-us/library/ms143770%28v=VS.100%29.aspx 
    System.Media.SoundPlayer myPlayer = new System.Media.SoundPlayer(s); 
    myPlayer.Play(); 
} 

पीके :-)

+0

माफ़ी, मैंने नमूना से 'myPlayer.Stream = new MemoryStream() 'कोड छोड़ा जो कि कन्स्ट्रक्टर स्ट्रीम को रद्द कर देता ... –

+0

आपकी मदद के लिए धन्यवाद। आपका कोड भी काम करता है और मैंने आपके लिए भी मतदान किया। – Eyla