web-dev-qa-db-ja.com

デフォルトの再生Androidボタンの音、onTouch()メソッドのクリック

私のAndroidアプリにはいくつかのボタンがあり、それはonTouch()メソッドで動作するはずです。もちろん、ACTION_DOWNの位置にある指でボタンのテキストを変更する必要があります。しかし、これはボタンは再生する必要がありますデフォルト Androidボタンのクリック音(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();
    }
}
26
dmgmyza

このコードをonTouch()メソッドで使用します。

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

単にプリセットを探している場合Androidサウンドの場合、フレームワークによって無料で提供されるこの機能を使用することをお勧めします。カスタマイズに必要でない限り、他のことを行うと、単にフレームワークで作業するのではなく、フレームワークに対して作業します。

65
Vishwa Patel

/system/media/audio/のデフォルトのサウンドを使用する

MediaPlayerまたはSoundPoolは、再生の実装に役立ちます。

0
dimetil

view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);の使用を検討してください。

デフォルトのサウンドを再生し、ユーザーがグローバル設定で有効にしている場合はバイブレーションします。

0
bapho