如何使用线程每秒更新Seekbar mp3进度?(包括代码/图片)Android

时间:2015-07-08 07:30:44

标签: android android-mediaplayer android-seekbar

每当我使用mediaPlayer播放mp3时,我都试图让搜索栏更新并显示进度。音乐每次播放都很好,当mp3正在播放时,搜索栏将始终弹到0位置。

我试图按照这个答案,但它不会工作...... SeekBar and media player in android

我在主要活动中有这段代码

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中,看起来像这样

附:如果有人有额外的时间,我如何改变搜索条球和颜色的大小

1 个答案:

答案 0 :(得分:2)

更改

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

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