Как обновлять mp3-прогресс Seekbar каждую секунду с помощью потока? (код/изображения прилагаются) Android

Я пытаюсь заставить панель поиска обновляться и показывать прогресс всякий раз, когда я играю mp3 с помощью mediaPlayer. Музыка воспроизводится нормально каждый раз, полоса поиска всегда устанавливается на 0 позицию при воспроизведении mp3.

Я пытался следовать этому ответу, но он просто не сработает... SeekBar и медиаплеер в андроид

У меня есть этот код в основной деятельности

private Handler mHandler = new Handler();
MainActivity.this.runOnUiThread(new Runnable() {

        @Override
        public void run() {
            if (Assets.mediaPlayer != null) {
                int mCurrentPosition = Assets.mediaPlayer.getCurrentPosition() / 1000;
                if(OnionFragment.seekBar!= null) {
                    OnionFragment.seekBar.setProgress(mCurrentPosition);
                }
            }
            mHandler.postDelayed(this, 1000);
        }
    });

в OnionFragment у меня есть

public static SeekBar seekBar;
seekBar = (SeekBar) rootView.findViewById(R.id.seekBar);

и в OnionFragments onclick (кнопка воспроизведения) у меня есть

Assets.playMusicFile(MainActivity.items.get(MainActivity.selectedItem).getSongId(), true);
                if(Assets.mediaPlayer!=null) {
                    seekBar.setMax(Assets.mediaPlayer.getDuration());
                }

OnionFragment сразу загружается в MainActivity и выглядит так

P.S. Если у кого-то есть лишнее время, как мне изменить размер и цвет шара поиска?


person Tintinabulator Zea    schedule 08.07.2015    source источник
comment
внутри метода запуска добавьте несколько вызовов Log.d   -  person pskink    schedule 08.07.2015


Ответы (1)


Изменять

seekBar.setMax(Assets.mediaPlayer.getDuration());

to

seekBar.setMax(Assets.mediaPlayer.getDuration()/1000);
person Volker Voecking    schedule 08.07.2015