我一直在开发一个 android 应用程序,它需要每个帧的相机预览数据,除此之外我还需要在捕捉帧时的俯仰(角度)值(来自旋转传感器)。我想在捕捉帧时映射俯仰值目前,我一直在实时映射 onpreviewframe 中的音高值,但由于帧被传递到 onpreviewframe 回调而导致延迟,我没有得到正确的结果。
我已经注册了 previewcallbackwithbuffer 回调以在 onpreviewframe 方法中获取每个帧数据。我一直在从 onSensorChanged 回调中获取传感器值。
有没有办法在捕获帧时映射音高值?
如果上面的问题看不懂,我准备把代码也贴出来..
最佳答案
onPreviewFrame()
回调的一个常见缺陷是,默认情况下这些回调将到达主 UI 线程,因此可能会被 UI 线程上发生的其他事情意外延迟。我已经解释了如何轻松切换到使用单独的处理程序线程进行相机回调 elsewhere .此外,将 onSensorChanged()
回调推离 UI 线程。
根据我的经验,使用上述设置将音调归因于预览帧非常可靠。我应该承认我的current app将预览流限制为 ~5 FPS。我们不需要更高的帧率,并且在我们接受的每一帧上都有相当重的 CV。
关于Android camera onpreviewframe回调与旋转传感器回调同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34372994/