आप जो पूछ रहे हैं वह XP पर संभव नहीं है; ओएस बस प्रति-अनुप्रयोग वॉल्यूम स्तर का समर्थन नहीं करता है।
आप एक सेटिंग क्लास बनाकर जो चाहते हैं उसे पूरा कर सकते हैं जो SoundActive: Boolean
या PlaySounds: Boolean
या कुछ समान चीज़ों को रखता है। इसे अपनी इकाई में रखें, और एक प्रारंभिक अनुभाग है जो इसका एक उदाहरण बनाता है और एक अंतिमकरण खंड जो इसे मुक्त करता है (इसे प्रभावी रूप से वैश्विक मानों का संग्रह बना देता है)।
प्रत्येक इकाई जिसे इन सेटिंग्स तक पहुंच की आवश्यकता होती है, केवल उस इकाई का उपयोग करती है, और उसके अनुसार व्यवहार को समायोजित करती है। तो अपने बच्चे को वर्ग या रूपों या जो कुछ भी बस जरूरत है एक चेक जोड़ा जाएगा के प्रत्येक:
if CurrentSettings.PlaySounds then
// Code that makes sounds, plays music, whatever.
सेटिंग्स वर्ग भी तरीकों कि (XP, सिस्टम-वाइड स्तर पर) वर्तमान वॉल्यूम स्तर का ट्रैक रखने के हो सकते हैं, और MMSystem
वॉल्यूम फ़ंक्शन का उपयोग करके वॉल्यूम बढ़ाने या घटाने के तरीके (यहां कई उदाहरण हैं और ऐसा करने के माध्यम से Google)। आपका ऐप OnActivate
और OnDeactivate
ईवेंट का उपयोग वॉल्यूम स्तर सेट करने के लिए वॉल्यूम स्तर सेट करने के लिए कर सकता है, और जब आपका ऐप फोकस खो देता है तो उसे उचित मात्रा में पुनर्स्थापित कर सकते हैं।
Vista में और उसके बाद वाले प्रणाली विस्तृत मात्रा (मैं, ऐसा करने का एक उदाहरण है उचित MMDevAPI
इंटरफ़ेस परिभाषाओं के साथ) या डिवाइस स्तर को नियंत्रित करने के IAudioEndPointVolume
इंटरफेस कि मैंने पहले बताया है और या तो GetMasterVolumeLevel
या SetMasterVolumeLevel
तरीकों का उपयोग कर सकते हैं वॉल्यूम (IMMDevioce.Activate
का उपयोग करके पहले उचित उपकरण का चयन करने के लिए और पैरामीटर में IMMDevice.Activate
से प्राप्त डिवाइस इंटरफ़ेस पर उपरोक्त IAudioEndPointVolume
विधियों का उपयोग करें)।
व्यक्तिगत आवेदनों के लिए, आप ISimpleAudioVolume
इंटरफ़ेस है, जो चार विधियों है का उपयोग करें: GetMasterVolume
और SetMasterVolume
है, जो अपने आवेदन की ऑडियो सत्र के लिए ध्वनि के स्तर को नियंत्रित करते हैं, और GetMute
और SetMute
आप वर्तमान मूक ध्वज मान प्राप्त या स्थापित करने के लिए अनुमति देने के लिए यह क्रमशः। (एमएस के लैरी ओस्टर्मन, जो विस्टा और विन 7 में नए ऑडियो समर्थन पर काम करने वाले डेवलपर्स में से एक थे, ने अपने ब्लॉग पर नए एपीआई में ऑडियो के प्रकार और उनमें से प्रत्येक का उपयोग करने के बारे में अपने ब्लॉग पर starting point article का शानदार प्रदर्शन किया है।)
यह क्रम में निर्धारित करने के लिए कौन सा ऑपरेटिंग सिस्टम का उपयोग कर रहे हैं, और प्रोग्राम के रूप में XP पर MMSystem
कार्यक्षमता का उपयोग के बीच स्विच करने और पहले धारणात्मक संभव है, और Vista और उच्च पर MMDevAPI
कार्यक्षमता। ऐसा करने के लिए कोड प्रदान करने के लिए यहां किसी की अपेक्षा करना थोड़ा अनुचित है, हालांकि। मेरे द्वारा प्रदान किए गए लिंक आपको सही रास्ते पर शुरू कर सकते हैं, और जब आप उन स्नैग के माध्यम से काम करने में विशिष्ट सहायता के साथ स्नैग में भाग लेते हैं तो वे बहुत अच्छे प्रश्न होंगे।
इस सवाल पर एक नज़र डालें: मैं क्या याद के लिए http://stackoverflow.com/questions/1092466/windows-xp-mute-unmute-audio-in-programmatically-in-python – Sebi
, XP नहीं था प्रति आवेदन ध्वनि स्तर। आपके पास एप्लिकेशन में कुछ केंद्रीय ध्वनि आउटपुट एपीआई होगा और अगर आप इसे विंडोज एपीआई में छोड़ दें या केवल –
को अनदेखा करें और निपटें तो WinXP में प्रति एप्लिकेशन ध्वनि नियंत्रण क्षमता नहीं है। यह Vista में जोड़ा गया था, और ऐसा करने के लिए जोड़े गए नए इंटरफेस के साथ ऐसा करने के लिए यह एक बिल्कुल अलग (नया) एपीआई का उपयोग करता है। लैरी ओस्टर्मन (एमएस पुराने टाइमर में से एक) के पास अपने ब्लॉग पर नए ध्वनि एपीआई पर एक श्रृंखला थी; मेरे पास इस मशीन पर इसका कोई लिंक नहीं है, लेकिन आप उसे गुगलिंग द्वारा ढूंढ पाएंगे। सीओ/सी ++ में एसओ पर इस पर पोस्ट हैं, मुझे कुछ समय पहले भी याद है; मैं देखूंगा कि क्या आप उन्हें खोजने के लिए उपयोग करने के लिए एक खोज शब्द पा सकते हैं। –