Не может запустить MediaPlayer снова после вызова метода MediaPlayer
В этом приложении у меня есть 2 кнопки, одна для запуска медиаплеера, а другая для остановки медиаплеера, но в моем случае stat и stop работают нормально.
Я не могу запустить медиаплеер после нажатия кнопки "Стоп", а также
start called in state 0, mPlayer(0x9f5d8300)
error (-38, 0)
Я пробовал некоторые решения от stackru, но ничего не помогло.
Кодирование:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mStop = (Button) findViewById(R.id.mStop);
mStart = (Button) findViewById(R.id.mStart);
final MediaPlayer player = MediaPlayer.create(this, R.raw.alarmsong);
mStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
player.start();
player.setLooping(true);
player.setVolume(100, 100);
}
});
mStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
player.stop();
}
});
}
Может ли кто-нибудь помочь мне исправить это.
2 ответа
Решение
Если я читаю документ, они говорят, что вам нужно вызвать метод prepare() для сброса вашего плеера.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mStop = (Button) findViewById(R.id.mStop);
mStart = (Button) findViewById(R.id.mStart);
final MediaPlayer player = MediaPlayer.create(this, R.raw.alarmsong);
mStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
player.start();
player.setLooping(true);
player.setVolume(100, 100);
}
});
mStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
player.stop();
player.prepare();
}
});
}
Тебе нужно сделать
player.release();
после остановки медиаплеера