Android MediaPlayer Stop & Play

Ich erstelle Android-Anwendung enthält 2 Tasten, klicken Sie auf jede Taste, um eine MP3-Datei abzuspielen. Das Problem ist, wenn ich spielebutton1 es spieltsound1, wenn ich klickebutton2 es spieltsound2.

Ich überprüfe auf jedem Knopf des anderen Spielers, ob es funktioniert und ich stoppe es und spiele den angeklickten

Wenn ich aber zweimal auf dieselbe Schaltfläche klicke, wird das erste Audiomaterial im Hintergrund abgespielt und ein weiteres erneut abgespielt

Ich habe versucht zu überprüfenisPlaying() und um es zu stoppen, aber es funktioniert nicht!

Ich möchte Wenn ich auf klickebutton1 Es spieltsound1 und wenn es noch einmal angeklickt wird, wird es gestoppt und von vorne wiedergegeben.

Mein Code:

package com.hamoosh.playaudio;
import android.app.Activity;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class PlayaudioActivity extends Activity {
/** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button b= (Button) findViewById(R.id.button1);
        Button b2= (Button) findViewById(R.id.button2);
        final TextView t= (TextView) findViewById(R.id.textView1);

        final MediaPlayer mp = MediaPlayer.create(PlayaudioActivity.this, R.raw.far);
        final MediaPlayer mp1 = MediaPlayer.create(PlayaudioActivity.this, R.raw.beet);

        b.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                if (mp1.isPlaying()) {

                    mp1.stop();
                }

                mp.start();
            }

        });

        b2.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                if (mp.isPlaying()) {

                    mp.stop();
                }
                mp1.start();
            }
        });
    }
}

Hoffe, dass es einen besseren Code gibt, der mehrere Tasten als Array verwendet, oder etwas, das nicht jedes Mal jede Taste und jeden Player überprüft.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage