2012-01-16 10 views
18

में मेरा एप्लिकेशन एक संचार कार्यक्रम के रूप में कैसे माना जाए, मैं एक प्रोग्राम बना रहा हूं जो स्पीच लाइब्रेरी का उपयोग करता है और जब मैं बात कर रहा हूं तो मैं अन्य सभी आवाज़ों को म्यूट या कम करना चाहता हूं।विंडोज़

मैं मैन्युअल रूप से अन्य अनुप्रयोगों को म्यूट करने का एक तरीका ढूंढ रहा हूं, लेकिन मैंने संचार टैब (ध्वनि विकल्पों के अंदर) में विंडोज़ में एक विकल्प देखा है जो उल्लेख करता है कि विंडो मेरे लिए इसका प्रबंधन कर सकती है। जैसा इस तस्वीर में:

enter image description here

तो बुनियादी तौर पर, यह क्या के लिए अपने आवेदन (जैसे Skype) एक संचार आवेदन के रूप में विचार किया जाना है?

+1

http://msdn.microsoft.com/en-us/library/windows/desktop/dd940522(v=vs.85).aspx प्रासंगिक हो सकता है। एक उत्तर लिखने के लिए पर्याप्त विस्तार से इसे देखा नहीं है। – Random832

+0

शायद [यह] (http://msdn.microsoft.com/en-us/library/windows/desktop/dd316773%28v=vs.85%29.aspx) वह है जिसे आप ढूंढ रहे हैं। इसे कभी भी इस्तेमाल नहीं किया, इसलिए मैं आपको इस तरह के आवेदन के रूप में प्रोग्राम को पंजीकृत करने का उचित तरीका नहीं दे सकता। – dowhilefor

उत्तर

5

मेरा मानना ​​है कि संचार ऐप्स IAudioVolumeDuckNotification इंटरफ़ेस से संबंधित कुछ कार्यान्वित कर रहे हैं। सी ++ उदाहरण में WM_VOLUME_DUCK और WM_VOLUME_UNDUCK विंडोज संदेश भी प्रदान किए गए हैं जो पर्याप्त हो सकते हैं (लेकिन Google- सक्षम या प्रलेखित नहीं दिखते हैं)।

अद्यतन

.NET Core Audio API project CodePlex पर एक .NET आवरण प्रदान करने के लिए प्रकट होता है।

अद्यतन

एक नमूना सी ++ IAudioVolumeDuckNotification के कार्यान्वयन के साथ-साथ ducked राज्य को अधिसूचित करने का एक उदाहरण MSDN DuckingMediaPlayer नमूना आवेदन में पाया जा सकता है। यह वास्तव में काम करता है (मैंने कोशिश की)। कुछ तरीकों से PInvoke'ing का संयोजन और इंटरफ़ेस के लिए .NET wrapper आपको अपने रास्ते पर लाने के लिए पर्याप्त होना चाहिए।