Воспроизведение звука и звука по умолчанию для Android, с помощью метода onTouch ()

В моем приложении Android у меня есть несколько кнопок, которые должны работать с методом onTouch () , конечно, мне нужно изменить текст кнопки, когда палец находится в позиции ACTION_DOWN. Но эти кнопки должны воспроизводить звук по умолчанию и звук нажатия кнопки (например, в методе onClick ()). Где я могу найти такой звук? Я думаю, это должно быть в SDK, но как я могу его найти? И какие методы лучше для такой операции? Я использую 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(); } } 

Используйте этот код в методе onTouch ():

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

Если вы просто ищете предустановленный звук Android, тогда лучше использовать эту функциональность, которая предоставляется вам бесплатно с помощью фреймворка. Выполнение чего-либо еще, если это необходимо для настройки, просто приведет к тому, что вы будете работать с каркасом, а не работать с ним.

Используйте звуки по умолчанию из /system/media/audio/

MediaPlayer или SoundPool помогут реализовать воспроизведение.

Рассмотрите возможность использования view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY); ,

Он будет выполнять оба действия: воспроизведение звука по умолчанию и вибрация, если пользователь включил его в глобальных настройках.