Android Media Player Не Будет Играть После Остановки
У меня есть музыкальный плейлист на 5 песен. Я просто хочу, чтобы кнопки воспроизведения и остановки работали до тех пор, пока im в приложении. И что я могу остановить музыку, когда захочу, и начать другую.
Как это работает сейчас...Музыка играет на кнопке воспроизведения, и когда я нажимаю кнопку стоп, она останавливается, но затем я хочу воспроизвести какую-то другую песню или ту же песню снова, ничего не происходит. Пожалуйста помочь.
public class glavna extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final MediaPlayer MPRadio1 = MediaPlayer.create(this, R.raw.pj1);
final MediaPlayer MPRadio2 = MediaPlayer.create(this, R.raw.pj2);
final MediaPlayer MPRadio3 = MediaPlayer.create(this, R.raw.pj3);
final MediaPlayer MPRadio4 = MediaPlayer.create(this, R.raw.pj4);
final MediaPlayer MPRadio5 = MediaPlayer.create(this, R.raw.pj5);
final RadioButton rb1, rb2, rb3, rb4, rb5;
rb1 = (RadioButton) findViewById(R.id.radio1);
rb2 = (RadioButton) findViewById(R.id.radio2);
rb3 = (RadioButton) findViewById(R.id.radio3);
rb4 = (RadioButton) findViewById(R.id.radio4);
rb5 = (RadioButton) findViewById(R.id.radio5);
Button btn = (Button) findViewById(R.id.buttonplay);
Button btnStop = (Button) findViewById(R.id.buttonStop);
btnStop.setOnClickListener(new View.OnClickListener() {
public void onClick(View b){
MPRadio1.stop();
MPRadio2.stop();
MPRadio3.stop();
MPRadio4.stop();
MPRadio5.stop();
};
});
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(rb1.isChecked())
{
MPRadio1.start();
}
else
{
if(rb2.isChecked())
{
MPRadio2.start();
}
else
{
if(rb3.isChecked())
{
MPRadio3.start();
}
else
{
if(rb4.isChecked())
{
MPRadio4.start();
}
else
{
if(rb5.isChecked())
{
MPRadio5.start();
}
}
}
}
};
}
}
);}}
3 ответа:
Чтобы снова воспроизвести песню, сбросьте медиаплеер, снова установите источник данных и запустите
mp.reset(); mp.setDataSource(MEDIA_PATH); mp.prepare(); mp.start();
Если нажать кнопку воспроизведения после остановки, то кнопка воспроизведения никогда не работает-для этой проблемы мы можем снова создать объект в кнопке остановки. например; - стоп.setOnClickListener (new OnClickListener() {
@Override public void onClick(View v) { // TODO Auto-generated method stub if(mPlayer.isPlaying()) mPlayer.stop(); mPlayer = MediaPlayer.create(mediaplayeractivity.this, R.raw.adidas); } });}
Когда игра не будет работать после нажатия кнопки стоп... просто сделайте свой объект mediaplayer в виде массива объектов, который должен его исправить..
final MediaPlayer[] mediaPlayer = {MediaPlayer.create(getApplicationContext(), R.raw.song_name)}; stop.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { mediaPlayer[0].stop(); mediaPlayer[0] = MediaPlayer.create(getApplicationContext(),R.raw.song_name); } });