27

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

3 に答える 3

78

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

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

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

于 2012-08-11T19:51:42.763 に答える
0

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

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

于 2012-08-11T15:52:47.917 に答える
0

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

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

于 2016-01-29T10:42:51.777 に答える