2016-06-28 4 views
1

Я делаю аудиоплеер и хочу обновить строку поиска при воспроизведении звука. Я искал в Интернете и написал способ его обновления с помощью runOnUiThread, но останавливает музыку при обновлении строки поиска. Как решить эту проблему, помимо использования сервисов.Обновление бара останавливает звук во время воспроизведения звука

getActivity().runOnUiThread(new Runnable() { 
           @Override 
           public void run() { 
           int duration = mp.getCurrentPosition()/1000; 
           seekbar.setProgress(duration); 
            mHandler.postDelayed(this, 1000); 
           } 
          }); 

ответ

1

вы должны сделать это как этот

mHandler.postDelayed(new Runnable() { 
    @Override 
    public void run() { 
     int duration = mp.getCurrentPosition()/1000; 
     seekbar.setProgress(duration); 
     mHandler.postDelayed(this,1000); 
    } 
},1000); 
+0

Не работает. Он работает только один раз. – mallaudin

+0

Да, это будет только один раз, вы хотите, чтобы он работал каждые 1 сек? –

+0

Да, за каждые 1 сек. – mallaudin

0

Попробуйте использовать таймер, пример:

Timer timer = new Timer(); 
timer.schedule(new TimerTask() { 
    @Override 
    public void run() { 
      int duration = mp.getCurrentPosition()/1000; 
      seekbar.setProgress(duration); 
    } 
}, 1000, 1000); 

Если вы хотите отменить

timer.cancel(); 
timer = null; 

More info about Timer

0

Проблема заключается в поискеBar.setOnSeekBarChangeListener (this); Так что положите его в свой метод AudioControl() ..... Вы не установите oncheckchangedlistner в свой поисковый бар ...

+0

Откуда вы это знаете? Я уже реализовал слушателей. – mallaudin

Смежные вопросы