使用Listener for SeekBar更改进度导致在使用MediaPlayer时暂停/播放

时间:2014-09-11 07:45:19

标签: android

当我使用此代码通过SeekBar控制MediaPlayer MediaPlayer不会继续播放。

1:玩

0:暂停

播放就像这样!

11110001110011

问题是什么?

代码:

sb_song.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

            @Override
            public void onStopTrackingTouch(SeekBar arg0) {
                // TODO Auto-generated method stub
                mp_qiraat.start();
            }

            @Override
            public void onStartTrackingTouch(SeekBar arg0) {
                // TODO Auto-generated method stub
                mp_qiraat.pause();
            }

            @Override
            public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
                // TODO Auto-generated method stub
                mp_qiraat.seekTo(arg1);
            }
        });

        tb_play_qiraat.setOnLongClickListener(new OnLongClickListener() {

            @Override
            public boolean onLongClick(View arg0) {
                vib.vibrate(80);
                mp_qiraat.reset();
                mp_qiraat.stop();
                rl_media.setVisibility(View.INVISIBLE);
                return false;
            }
        });

1 个答案:

答案 0 :(得分:1)

onProgressChanged在SeekBar搜索过程中多次(经常)调用。

当onProgressChanged被称为某个变量时,必须保存新的搜索位置,并且只有在调用seekTo(pos)回调时才调用onStopTrackingTouch(),这意味着搜索过程已完成且您必须调用MediaPlayer.seekTo(seekPos) API。

比你寻求的过程会变得更加顺畅,我认为这个问题会消失。