我正在构建像藤蔓这样的相机应用程序,只要您将手指放在屏幕上,就可以录制视频。
我的问题:如果有人在屏幕上快速连续拍摄,相机逻辑会收到太多事件。它不断尝试写文件,关闭录音机,打开新连接等等。
当它在太短的时间内不得不经常开始和停止录制时,相机似乎非常脆弱。
我尝试设置一个标志,以防止新的动作事件在仍在忙于上一次操作时访问摄像机。这很难看,但它确实有效。主要的问题是,运动事件似乎会在一个接一个之后引发并引发太多事件。
我正在使用动作事件ACTION_UP
和ACTION_DOWN
来检测用户是否将手指放在屏幕上或将其释放。
在相机处理准备和发布期间,是否有一种很好的方法可以禁用捕获动作事件?
答案 0 :(得分:1)
试试这个:
//Class Variable
Timer timer;
public boolean onTouch(View view, MotionEvent event) {
// Check event type
switch (event.getAction()) {
// Finger down
case MotionEvent.ACTION_DOWN:
timer = new Timer();
timer.schedule(recordingfunc(),1000);
break;
case MotionEvent.ACTION_UP:
if(timer!=null){
timer.cancel();
}
break;
}
}