gpt4 book ai didi

android - 如何暂停和继续收听来自 CvCameraViewListener2 的帧

转载 作者:太空宇宙 更新时间:2023-11-03 21:53:25 24 4
gpt4 key购买 nike

我想从相机中获取一帧,对其进行一些处理并暂停传入的帧,直到我再次触摸屏幕。一旦我触摸了屏幕,它就会恢复接收帧并处理下一帧。我所做的是禁用 onCameraFrame 内的 View 并在 onTouch 内重新启用它:

public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
final Mat rgba = inputFrame.rgba();
final Mat gray = inputFrame.gray();

if (mEstimator.getProcessFrameDone()) {
Log.i(TAG, "Process frame done.");
mResumeFrameCapture = true;
mProcessThisFrame = false;
mOpenCvCameraView.disableView();

}

if (mProcessThisFrame) {
Log.i(TAG, "Processing frame.");
mEstimator.processFrame(rgba);

}

Core.flip(rgba, rgba, 1);
return rgba;
}

public boolean onTouch(View v, MotionEvent event) {
Log.i(TAG, "Screen touched.");

mProcessThisFrame = true;

if (mResumeFrameCapture) {
Log.i(TAG, "Resuming frame captures.");
mEstimator.setProcessFrameDone();
mProcessThisFrame = false;

OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_6,
mContext, mLoaderCallback);
}
mResumeFrameCapture = false;
return false;
}

问题是,我认为 disableView 无法正常工作。当我通过调试器运行它时,我什至无法跨过它。它只是挂起。然而,当你按下多任务按钮并故意让它暂停时,onPause 运行相同的 disableView 代码,你可以跳过它。试过直接运行onPause,还是不行。关于如何正确禁用 View 的任何想法?

最佳答案

好吧,我找到了原因。这是因为您无法在 OnCameraFrame 函数中禁用 View 。您必须在函数之外执行此操作。

关于android - 如何暂停和继续收听来自 CvCameraViewListener2 的帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28889044/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com