2012-08-11 19 views
21

पर क्लिक करें मेरे एंड्रॉइड ऐप में मेरे पास कुछ बटन हैं, जो ऑन टच() विधि के साथ काम करना चाहिए, पाठ्यक्रम में ACTION_DOWN स्थिति में उंगली होने पर मुझे बटन के टेक्स्ट को बदलने की आवश्यकता है। लेकिन इस बटन को डिफ़ॉल्ट बटन क्लिक करने की एंड्रॉइड ध्वनि (जैसे ऑनक्लिक() विधि) खेलना चाहिए। मुझे ऐसी आवाज कहाँ मिल सकती है? मुझे लगता है, यह एसडीके में होना चाहिए, लेकिन मैं इसे कैसे ढूंढ सकता हूं? और इस तरह के ऑपरेशन के लिए कौन सी विधियां बेहतर हैं? मैं मीडियाप्लेयर का उपयोग कर रहा हूं।बटन की डिफ़ॉल्ट एंड्रॉइड ध्वनि बजाना, टच() विधि

लिस्टिंग:

public boolean onTouch(View v, MotionEvent event) { 
    int action = event.getAction(); 
    switch (action) { 
    case MotionEvent.ACTION_DOWN: 
     addTextShadow(v); 
     Log.v(LOG_TAG, "ACTION_DOWN"); 
     break; 
    case MotionEvent.ACTION_MOVE: 
     clearTextShadow(v); 
     isMoved = true; 
     Log.v(LOG_TAG, "ACTION_MOVE"); 
     break; 
    case MotionEvent.ACTION_UP: 
     Log.v(LOG_TAG, "ACTION_UP"); 
     if (!isMoved) { 
      clearTextShadow(v); 
      if (v.getId() == R.id.btn_new) { 
       Log.v(LOG_TAG, "New pressed"); 

          playSound(); //MY METHOD TO PLAY SOUND 

      } else if (v.getId() == R.id.btn_saved) { 
       Log.v(LOG_TAG, "Saved pressed"); 
      } else if (v.getId() == R.id.btn_random) { 
       Log.v(LOG_TAG, "Random pressed"); 
      } 
     } 
     isMoved = false; 
     break; 
    } 
    return true; 
} 

और मेरे playSound() विधि:

public void playSound(){ 
    if (mp != null) { 
     mp.release(); 
     mp = null; 
    } 
    try { 
     mp = MediaPlayer 
    .create(MyActivity.this, R.raw.sound); //BUT HERE I NEED DEFAULT SOUND! 
     mp.start(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
+0

एंड्रॉइड डिफ़ॉल्ट क्लिक ध्वनि को 'डिफ़ॉल्ट' से नहीं चलाता है? कम से कम यह आईसीएस पर ऐसा करता है। –

+0

विश्व पटेल, नहीं, एंड्रॉइड डिफ़ॉल्ट क्लिक ध्वनि चलाता है, जब हम ऑनक्लिक लिस्टनर का उपयोग करते हैं, लेकिन टचलिस्टर पर नहीं। मैं आईसीएस (एसजीएस 2) के साथ सभी कार्यक्रमों का परीक्षण करता हूं। – dmgmyza

उत्तर

62

उपयोग आपकी onTouch() विधि में इस कोड:

view.playSoundEffect(android.view.SoundEffectConstants.CLICK); 

तो आप बस एक पूर्व निर्धारित एंड्रॉयड ध्वनि के लिए देख रहे हैं तो यह इस कार्यशीलता कि ढांचे द्वारा मुक्त करने के लिए आप के लिए प्रदान की जाती है का उपयोग करना बेहतर है। कुछ भी नहीं करना, जब तक कि अनुकूलन के लिए जरूरी न हो, परिणामस्वरूप आप इसके साथ काम करने के बजाय ढांचे के खिलाफ काम करेंगे।

+2

विश्व पटेल, सुपर! यह काम करता है, thanx बहुत। यू आर दाएं, playSound() और मीडियाप्लेयर अब बेकार हैं। – dmgmyza

+0

@dmgmyza उत्कृष्ट! मदद करने में खुशी हुई। यदि आपको लगता है कि यह सहायक है तो आपको मेरा जवाब ऊपर उठाना चाहिए! –

+0

मैं वास्तव में चाहता हूं, लेकिन मेरी प्रतिष्ठा केवल 12 है। मुझे वोट देने के लिए 3 और अंक चाहिए। – dmgmyza

0

डिफ़ॉल्ट उपयोग से /system/media/audio/

MediaPlayer लगता है या SoundPool प्लेबैक को लागू करने में मदद मिलेगी।

0

view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY); का उपयोग करने पर विचार करें।

यह दोनों करेगा: डिफ़ॉल्ट सेटिंग और कंपन को बजाना अगर उपयोगकर्ता ने वैश्विक सेटिंग्स में इसे सक्षम किया है।

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