我一直在开发一个Android应用程序,它需要每个帧的相机预览数据,除了我想要的音高(角度)值(来自旋转传感器),同时捕捉帧。我想在捕获帧的同时映射音高值现在,我一直在onpreviewframe上映射音高值,但由于帧被传递到onpreviewframe回调而导致延迟,我得不到正确的结果。
我已经注册了previewcallbackwithbuffer回调来获取onpreviewframe方法中的每个帧数据。我从onSensorChanged回调中获取了传感器值。
有没有办法在捕捉帧时映射音高值?。
如果上述问题不可理解,我也准备发布代码..
答案 0 :(得分:1)
onPreviewFrame()
回调的一个常见缺陷是,默认情况下,这些回调将到达主UI线程,因此可能由于UI线程上发生的其他事情而无法预测地延迟。我已经解释了如何轻松切换到使用单独的处理程序线程进行相机回调elsewhere。此外,将onSensorChanged()
回调推离UI线程。
根据我的经验,通过上述设置将音调归因于预览帧非常可靠。我应该承认我的current app将预览流限制为~5 FPS。我们不需要更高的帧速率,并且在我们接受的每个帧上都有相当繁重的CV。