播放默认的Androidbutton声音,点击onTouch()方法

在我的Android应用程序中,我有一些button,应该与onTouch()方法一起工作,当然我需要改变button的文本,当手指在ACTION_DOWN位置。 但是这个button应该可以播放button点击的默认 android声音(如onClick()方法)。 我在哪里可以find这样的声音? 我认为,它必须在SDK中,但我怎么能find它? 哪种方法更适合这种操作? 我正在使用MediaPlayer。

清单:

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(); } } 

Solutions Collecting From Web of "播放默认的Androidbutton声音,点击onTouch()方法"

在你的onTouch()方法中使用这个代码:

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

如果您只是在寻找预设的Android声音,那么最好使用这个由框架免费提供给您的function。 除非定制需要,否则做其他事情只会导致您对框架进行工作而不是使用它。

使用/system/media/audio/

MediaPlayer或SoundPool将有助于实现播放。

考虑使用view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);

它将同时执行以下操作:播放默认声音并在用户在全局设置中启用时振动。