Попытка одновременного воспроизведения только одного аудиофайла с помощью MediaPlayer и if /else

StackOverflow https://stackoverflow.com/questions/9331178

  •  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;
 }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top