首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >videoView与seekBar,seekTo与seekBar进度

videoView与seekBar,seekTo与seekBar进度
EN

Stack Overflow用户
提问于 2018-06-19 13:08:07
回答 1查看 4K关注 0票数 1

现在,查找条根据videoView的流程移动。但我很难发展寻找酒吧的触觉。

  • 这就是我想要发展的。当我触摸查找条卷轴时,视频视图扮演匹配查找条位置的角色。

下面是我的密码。

代码语言:javascript
复制
public class PreviewingActivity extends AppCompatActivity implements SeekBar.OnSeekBarChangeListener {

private static final String TAG = "PreviewingActivity";

private ImageView playBtn, pauseBtn;
private VideoView recVideo;
private String videoPath;
private SeekBar seekBar;
private boolean isSeekbarTouch = false;
private Handler updateHandler = new Handler();

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_previewing);

    playBtn = (ImageView) findViewById(R.id.play_btn);
    pauseBtn = (ImageView) findViewById(R.id.pause_btn);
    recVideo = (VideoView) findViewById(R.id.rec_video);
    seekBar = (SeekBar) findViewById(R.id.seek_bar);

    Intent intent = getIntent();
    videoPath = intent.getStringExtra("recVideoPath");
    recVideo.setVideoPath(videoPath);

    playBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            recVideo.start();
            playBtn.setVisibility(View.GONE);
            pauseBtn.setVisibility(View.VISIBLE);
        }
    });

    pauseBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            recVideo.pause();
            playBtn.setVisibility(View.VISIBLE);
            pauseBtn.setVisibility(View.GONE);
        }
    });

    recVideo.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mediaPlayer) {
            playBtn.setVisibility(View.VISIBLE);
            pauseBtn.setVisibility(View.GONE);

        }
    });

    recVideo.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
        @Override
        public void onPrepared(MediaPlayer mediaPlayer) {
            seekBar.setProgress(0);
            seekBar.setMax(recVideo.getDuration());
            updateHandler.postDelayed(updateVideoTime, 100);
        }
    });
}

private Runnable updateVideoTime = new Runnable() {
    @Override
    public void run() {
        long currentPosition = recVideo.getCurrentPosition();
        seekBar.setProgress((int) currentPosition);
        updateHandler.postDelayed(this, 100);
    }
};


@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean b) {

}

@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}

@Override
public void onStopTrackingTouch(SeekBar seekBar) {

}
}

如果你知道如何解决这个问题,请告诉我。谢谢你阅读这个问题!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-19 17:22:01

在这种方法中

代码语言:javascript
复制
SeekBar seekBar, int progress, boolean b

if(b) {
 // Mean that the seekbar value is changed by user
  videoView.seekTo((progress*duration)/100); // Verify this
} else {
 // Ignore becuase is due to seekBar programmatically change
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50929308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档