2012-03-06 24 views
7

में जैक सेंसिंग मैं एक ऐसा एप्लीकेशन लिख रहा हूं जो माइक्रोफोन से ऑडियो रिकॉर्ड करेगा। मेरी समस्या यह है कि मुझे पता होना चाहिए कि जब उपयोगकर्ता जैक में प्लग करता है और जैक आउट को हटा देता है।सी #

मैंने Win32_SoundDevice डब्लूएमआई कक्षा में देखा और मुझे लगता है कि ऐसी कोई संपत्ति नहीं है जिसे मैं जैक की स्थिति की जांच कर सकूं।

फिर मुझे IMMDeviceEnumerator में मिला जो मुझे लगता है कि ऐसा करने के लिए प्रतीत होता है लेकिन मुझे कोई संकेत नहीं है कि सी # में ऐसा कैसे करें। क्या किसी को पता है कि ऑडियो पोर्ट स्थिति की जांच के लिए MMDeviceEnumerator विधियों का उपयोग कैसे करें? किसी भी मदद की अत्यधिक सराहना की।

उत्तर

1

आप ओपन सोर्स NAudio प्रोजेक्ट पर एक नज़र डालना चाहते हैं।

मैंने अपना कोड ब्राउज़ किया है और ऐसा लगता है कि उनके IMMDeviceEnumerator interface के लिए उनके पास नेट रैपर है।

चूंकि यह प्रोजेक्ट माइक्रोसॉफ्ट पब्लिक लाइसेंस के तहत है, तो यह संभवतः आपके प्रोजेक्ट में उपयोग योग्य होगा।

0

निम्न कोड के साथ की जाँच करें:

var enumerator = new MMDeviceEnumerator(); 
var d = enumerator.GetDefaultAudioEndpoint(DataFlow.Render, Role.Multimedia); 
Console.WriteLine(d.Properties[new Guid("46d16a2c-5654-41c0-911e-7860d2bce7ee")].Value.ToString()); 

यह गुण वापसी की 1 (प्लग) या 0 (अनप्लग्ड) ..

आप NAudio पुस्तकालय संदर्भित किया जाना चाहिए ..

+0

मैं हो रही है एक "वस्तु संदर्भ किसी ऑब्जेक्ट के उदाहरण पर सेट नहीं है" ग्रिड में त्रुटि, गाइड क्या है? – kakopappa