1

シークバーをドラッグすると、ドラッグを止めるまで画面に表示されるフレームが変わりません。Android Library の VideoView では、シークバーをドラッグしながらフレームをスムーズに変更できます。

4

1 に答える 1

1

SeekBar の onSeekBarChangeListener を実装する

例えば

private OnSeekBarChangeListener mSeekListener = new OnSeekBarChangeListener() {
    public void onStartTrackingTouch(SeekBar bar) {
        mDragging = true;
        show(3600000);
        mHandler.removeMessages(SHOW_PROGRESS);
        if (mInstantSeeking)
            mAM.setStreamMute(AudioManager.STREAM_MUSIC, true);
        if (mInfoView != null) {
            mInfoView.setText("");
            mInfoView.setVisibility(View.VISIBLE);
        }
    }

    public void onProgressChanged(SeekBar bar, int progress, boolean fromuser) {
        if (!fromuser)
            return;

        long newposition = (mDuration * progress) / 1000;
        String time = StringUtils.generateTime(newposition);
        if (mInstantSeeking)
            mPlayer.seekTo(newposition);
        if (mInfoView != null)
            mInfoView.setText(time);
        if (mCurrentTime != null)
            mCurrentTime.setText(time);
    }

    public void onStopTrackingTouch(SeekBar bar) {
        if (!mInstantSeeking)
            mPlayer.seekTo((mDuration * bar.getProgress()) / 1000);
        if (mInfoView != null) {
            mInfoView.setText("");
            mInfoView.setVisibility(View.GONE);
        }
        show(sDefaultTimeout);
        mHandler.removeMessages(SHOW_PROGRESS);
        mAM.setStreamMute(AudioManager.STREAM_MUSIC, false);
        mDragging = false;
        mHandler.sendEmptyMessageDelayed(SHOW_PROGRESS, 1000);
    }
};
于 2013-04-22T01:32:35.380 に答える