webentwicklung-frage-antwort-db.com.de

Standard-Android-Sound der Schaltfläche wiedergeben und auf die Touch-Methode () klicken

In meiner Android-App habe ich einige Tasten, die mit der onTouch () - Methode funktionieren sollten. Natürlich muss ich den Text der Schaltfläche ändern, wenn sich der Finger in der ACTION_DOWN-Position befindet. Diese Tasten sollten jedoch zum Abspielen von Standard Android-Sounds beim Klicken auf die Schaltfläche (wie in der Methode onClick ()) verwendet werden. Wo finde ich so einen Sound? Ich denke, es muss in SDK sein, aber wie finde ich es? Und welche Methoden sind für eine solche Operation besser? Ich verwende MediaPlayer.

Listing:

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

Und meine playSound () - Methode:

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

Verwenden Sie diesen Code in Ihrer onTouch () -Methode:

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

Wenn Sie lediglich nach einem voreingestellten Android-Sound suchen, sollten Sie diese Funktion, die Ihnen das Framework kostenlos zur Verfügung stellt, besser nutzen. Wenn Sie etwas anderes tun, wird dies, sofern es nicht für die Anpassung erforderlich ist, dazu führen, dass Sie mit dem Framework arbeiten, anstatt mit ihm zu arbeiten.

64
Vishwa Patel

Standardtöne aus /system/media/audio/ verwenden

MediaPlayer oder SoundPool helfen bei der Wiedergabe.

0
dimetil

Erwägen Sie die Verwendung von view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);.

Es wird beides: das Standardgeräusch wird abgespielt und vibriert, wenn der Benutzer es in den globalen Einstellungen aktiviert hat.

0
bapho