c#相机拍照发生时序问题
发布网友
发布时间:2022-11-27 07:25
我来回答
共5个回答
热心网友
时间:2023-05-25 06:16
用委托和多线程,在网上能找到相关资料。不过你这样拍照的意义何在? 如果想截取黑屏还不如直接调用按键"PrintScreen",能截取一张桌面图片。反正都得用到委托和多线程。
你这Button函数肯定不行的,你再怎么延时,他都拍不到黑屏,因为这是按顺序来执行,都在一个主线程内,怎么可能实现呢???
所以,执行按键是主线程,同时开启黑屏子线程,子线程延时2000ms,在2000ms内截图,不就ok了;
热心网友
时间:2023-05-25 06:17
拍照命令时序图
2.拍照数据回调时序图
二、看看源码分析
hardware/amlogic/camera/CameraHal.cpp
1 status_t CameraHal::takePicture( ){
2 ret = mCameraAdapter->sendCommand(CameraAdapter::CAMERA_START_IMAGE_CAPTURE, (int) &mStartCapture);
3 }
调用父类方法:
hardware/amlogic/camera/BaseCameraAdapter.cpp
1 status_t BaseCameraAdapter::sendCommand(CameraCommands operation, int value1, int value2, int value3){
2 switch ( operation ) {
3 case CameraAdapter::CAMERA_START_IMAGE_CAPTURE:
4 ret = takePicture();
5 }
6 }
调用子类方法:
hardware/amlogic/camera/V4LCameraAdapter/V4LCameraAdapter.cpp
1 status_t V4LCameraAdapter::takePicture(){
2 if (createThread(beginPictureThread, this) == false)
3 return -1;
4 }
5 /*static*/ int V4LCameraAdapter::beginPictureThread(void *cookie){
6 V4LCameraAdapter *c = (V4LCameraAdapter *)cookie;
7 return c->pictureThread();
8 }
9 int V4LCameraAdapter::pictureThread(){
10 ret = sendFrameToSubscribers(&frame);
11 }
调用父类方法:
hardware/amlogic/camera/BaseCameraAdapter.
热心网友
时间:2023-05-25 06:17
c#相机拍照发生时序问题是,C#相机S 简单的做了一个C,主要就是单次取图,实时拍摄,参数设置,图像比例设置等
热心网友
时间:2023-05-25 06:18
相机拍的照片时序胡乱怎么回事? - 百度知道
1个回答回答时间:2020年9月6日
最佳回答:相机里面有个设置,你设置一下就不会这样就好了
百度知道
热心网友
时间:2023-05-25 06:18
相机里面有个设置,你设置一下就不会这样就好了