Попытка одновременного воспроизведения только одного аудиофайла с помощью MediaPlayer и if /else
-
27-10-2019 - |
Вопрос
Я пытался следить за другими вопросами, но я не думаю, что это то, что я ищу.
Вот моя java: http://pastie.org/private/psy2nnys8i0ajz4i8qfw
Я знаю, что открываю несколько экземпляров mp, поэтому я пытаюсь определить, воспроизводится ли один из них, и остановить его в строках 34-39, но он все равно перекрывается
пожалуйста, посоветуйте.Я попробовал singleton - но это не сработало, я также попытался использовать один экземпляр mediaplayer и установить источник данных, но не смог понять, как передать ему R.raw.clipname.
Спасибо!
Решение
Было бы как-то сложно попытаться отладить / отследить ваш код.Но я могу дать вам решение открыть необработанный ресурс в вашем MediaPlayer
, что также сделает ваш код более надежным и простым :
MediaPlayer player=new MediaPlayer();
player.setDataSource(
getResources().openRawResourceFd(R.raw.clip1).getFileDescriptor());
Другие советы
ИСПОЛЬЗУЙ ЭТОТ:
@Переопределение
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_UP://int end
pv.stop();
pv.reset();
pv=MediaPlayer.create(MainActivity.this,R.raw.slot);
Toast.makeText(this,"stop",Toast.LENGTH_SHORT).show();
break;
case MotionEvent.ACTION_DOWN://in start
pv.start();
Toast.makeText(this,"play",Toast.LENGTH_SHORT).show();
break;
default:
break;
}
return false;
}