2011-02-16 12 views
35

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

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

क्या मेरे आवेदन में या कम से कम एक गतिविधि के लिए "श्रव्य चयन" को रोकने का कोई और वैश्विक तरीका है?

+0

आपका स्वीकार किए जाते हैं ans में इसे करने के लिए संदर्भ । मैं वही कर रहा हूँ। मदद!! –

उत्तर

47

एक विषय फ़ाइल बनाएँ "res/values ​​/ styles.xml"

<?xml version="1.0" encoding="utf-8"?> 
<resources> 

<style name="AppBaseTheme" parent="android:Theme.Black.NoTitleBar"> 
    <!-- 
     Theme customizations available in newer API levels can go in 
     res/values-vXX/styles.xml, while customizations related to 
     backward-compatibility can go here. 
    --> 
</style> 

<!-- Application theme. --> 
<style name="AppTheme" parent="AppBaseTheme"> 
    <!-- All customizations that are NOT specific to a particular API-level can go here. --> 
    <item name="android:soundEffectsEnabled">false</item> 
</style> 

</resources> 

और फिर मेरे लिए काम नहीं कर रहा में अपने "AndroidManifest.xml"

<application 
    ... 
    android:theme="@style/AppTheme" > 
+4

मैं वही कर रहा हूं। लेकिन यह सैमसंग नोट I पर काम नहीं कर रहा है –

+0

आपने अपना समय बचाया! – Justin

+2

लॉलीपॉप में मेरे लिए काम नहीं कर रहा है – Gilian

1

आप बटन से विस्तारित एक कस्टम दृश्य बना सकते हैं। फिर बस अपने सृजन पर झूठ बोलने के लिए ध्वनि प्रभाव सेट करें।

http://developer.android.com/guide/topics/ui/custom-components.html

तुम भी आगे जाकर दृश्य पता है जो नए कस्टम ध्वनि खेला जाना चाहिए कर सकते हैं।

+0

मेरा आवेदन लगभग समाप्त हो गया है, ऐसा करने के लिए मुझे एक दर्जन गतिविधियों के लिए अपने सभी लेआउट और कोड को बदलना होगा। – Lumis

+1

कस्टम बटन पर स्विच करने के लिए आप अपने सभी लेआउट एक्सएमएल फाइलों में बस एक साधारण स्ट्रिंग को प्रतिस्थापित नहीं कर सकते हैं ?! – EboMike

9

आप अपनी खुद की बटन वर्ग बना सकते हैं और उपयोग करें कि एक्सएमएल लेआउट फाइलों में हो सकता है ...

package com.mycompany.myApp 

public class MyButton extends Button { 

    public MyButton (Context context, AttributeSet attrs) { 
     this.setSoundEffectsEnabled(false); 
    } 
} 

फिर एक्सएमएल लेआउट फ़ाइलों का उपयोग में ...

<com.mycompany.myApp.MyButton 
    ... 
</com.mycompany.myApp.MyButton> 

... के लिए आपके बटन

+1

एक अच्छे उदाहरण के लिए धन्यवाद। इसमें बहुत सारे बदलाव हैं जिनमें मेरे पास 17 लेआउट हैं ... इच्छा है कि यह एक आसान तरीका था। – Lumis

+0

फिर क्यों नहीं 'एंड्रॉइड: soundEffectsEnabled = "false"' xml व्यू में कस्टम बटन –

29

मुझे बस मेरे आवेदन के लिए एक ही समस्या थी। मैं थीम में android:soundEffectsEnabled=false डाल कर वैश्विक स्तर पर ध्वनि प्रतिक्रिया को बंद करने में सक्षम था।

+0

बनाने के बजाय क्यों वह उत्तर है जिसे मैं ढूंढ रहा था। यह केवल एक गतिविधि के लिए काम करेगा, है ना? मैं तब प्रत्येक गतिविधि के लिए थीम असाइन करना चाहता था ... हालांकि मुझे नहीं लगता कि हर डिवाइस एक ही तरीके से व्यवहार करता है, मैंने अनुभव किया है कि कुछ डिवाइस एंड्रॉइड के साथ बटन के पहले उदाहरण पर ध्वनि को बंद कर देते हैं: soundEffectsEnabled = झूठी लेकिन सभी नहीं। – Lumis

+1

आप थीम को पूरे एप्लिकेशन में मैनिफेस्ट फ़ाइल से लागू कर सकते हैं। – JessicaM

संबंधित मुद्दे