Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android使用快门事件时间戳获取每个帧_Android_Android Camera - Fatal编程技术网

Android使用快门事件时间戳获取每个帧

Android使用快门事件时间戳获取每个帧,android,android-camera,Android,Android Camera,我一直在开发一个android应用程序,它使用相机预览原始数据进行实时图像处理 我已经用相机注册了PreviewCallback,我可以用相机获取每帧数据 @Override public void onPreviewFrame(byte[] data, Camera camera) { } 我还有另一个要求,那就是计算每帧的系统时间(捕获时间/快门时间)(毫秒)。每个帧都应与适当的捕获时间/快门时间相关联 使用camera.takePicture时(shutterCallbac

我一直在开发一个android应用程序,它使用相机预览原始数据进行实时图像处理

我已经用相机注册了PreviewCallback,我可以用相机获取每帧数据

 @Override
 public void onPreviewFrame(byte[] data, Camera camera) {

    }
我还有另一个要求,那就是计算每帧的系统时间(捕获时间/快门时间)(毫秒)。每个帧都应与适当的捕获时间/快门时间相关联


使用
camera.takePicture时(shutterCallback,null,null)我可以获取单个图片的快门时间。但是在预览中,如何获取到达onpreviewframe回调的每个帧的快门时间。

不幸的是,在Java中,对于不推荐使用的camera API的预览帧,唯一可以获取的时间戳是
onpreviewframe()第一行的
elapsedRealtimeNanos()
回调。如果您通过未记录的本机API使用camera,则有一些依赖于平台的替代方案,但出于您的目的,最好的解决方案可能是切换到新的解决方案。值得肯定的是,传感器和预览帧()之间的延迟通常很小。@AlexCohn感谢您的重播!。。是的,camera 2 api提供了对android摄像头的更多控制,但它在低于20 rit?的api级别上无法工作?。。有没有其他方法可以获得拍摄时间戳???。对,camera2是21岁及以上的;此外,并非所有带有21的设备都完全支持camera2。请阅读我的上一篇文章。注释-我试图解释在旧API中可以做什么。@AlexCohn yeah。。但是我的问题是如何找到每一帧的android设备节距值(围绕x轴的角度)。。以很小的间隔从旋转传感器获取俯仰值。由于onpreview帧回调中的延迟,我无法将俯仰值与帧匹配。。我问了另一个更详细的问题FWIW,如果将帧发送到SurfaceTexture,并使用GLES而不是Java进行工作,则可以从相机获取时间戳。Grafika()中的各种示例。