Android MediaPlayer Остановись и играй
Я создаю приложение для Android, содержащее 2 кнопки, по нажатию на каждую из кнопок воспроизводится mp3-файл.
Проблема в том, когда я играюbutton1
играетsound1
когда я нажимаюbutton2
играетsound2
.
Я проверяю на каждой кнопке другого игрока, работает ли он, и я останавливаю ее и играю по нажатой кнопке.
Но если я дважды нажму на одну и ту же кнопку, она продолжит воспроизведение первого звука в фоновом режиме и снова воспроизведет еще одну.
Я пытался проверитьisPlaying()
и остановить это, но это не работает!
Я хочу, если я нажму наbutton1
это игратьsound1
и если щелкнуть по нему еще раз, он остановится и снова начнет играть.
Мой код:
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();
}
});
}
}
Надеюсь, есть ли лучший код, который может использовать несколько кнопок в виде массива или что-то, чтобы не проверять каждую кнопку и игрока каждый раз.