如何在Android Studio中1秒后从视频中捕获图像

如何在Android Studio中1秒后从视频中捕获图像,android,opencv,image-processing,timer,Android,Opencv,Image Processing,Timer,我不熟悉安卓和图像处理。到目前为止,我所做的是制作一个精明的视频(运行正常) 并在触摸屏上拍摄图像。然后图像被存储到一个目录中。(这也正常运行) 我努力实现的目标是: 在定时器或延迟一秒钟后从视频中捕获图像并将其存储在目录中。我不知道怎么做。我在OnCameraFrame中复制了Ontouch()中的代码,并为mOpenCvCameraView.takePicture(文件名)设置了一个计时器,尝试了使用计时器和倒计时; 但他们不为我工作 编辑:我正在尝试这样做,但在我的情况下不起作用。我想在1

我不熟悉安卓和图像处理。到目前为止,我所做的是制作一个精明的视频(运行正常)

并在触摸屏上拍摄图像。然后图像被存储到一个目录中。(这也正常运行)

我努力实现的目标是:

在定时器或延迟一秒钟后从视频中捕获图像并将其存储在目录中。我不知道怎么做。我在OnCameraFrame中复制了Ontouch()中的代码,并为mOpenCvCameraView.takePicture(文件名)设置了一个计时器,尝试了使用计时器和倒计时; 但他们不为我工作

编辑:我正在尝试这样做,但在我的情况下不起作用。我想在1秒后捕捉图像,而不是在触摸事件之后。有什么建议吗

 new Timer().scheduleAtFixedRate(new TimerTask() {
        @Override
        public void run() {
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss");
            String currentDateAndTime = simpleDateFormat.format(new Date());
            final String fileName = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getPath() + "/sample_picture_" + currentDateAndTime + ".jpg";

            mOpenCvCameraView.takePicture(fileName);
        }
    }, 0, 1000);
@SuppressLint("SimpleDateFormat")
@Override
public boolean onTouch(View v, MotionEvent event) {
    Log.i(TAG,"onTouch event");
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss");
    String currentDateAndTime = simpleDateFormat.format(new Date());

    //String fileName = Environment.getExternalStorageDirectory().getPath() + "/sample_picture_" + currentDateandTime + ".jpg";
    //String test = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getPath();
    final String fileName = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getPath() + "/sample_picture_" + currentDateAndTime + ".jpg";

    mOpenCvCameraView.takePicture(fileName);
    Toast.makeText(this, fileName + " saved", Toast.LENGTH_LONG).show();
    return false;
}
 new Timer().scheduleAtFixedRate(new TimerTask() {
        @Override
        public void run() {
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss");
            String currentDateAndTime = simpleDateFormat.format(new Date());
            final String fileName = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getPath() + "/sample_picture_" + currentDateAndTime + ".jpg";

            mOpenCvCameraView.takePicture(fileName);
        }
    }, 0, 1000);