我正在为我的Android应用程序使用外部摄像头设备。 相机的SDK提供了一个回调功能,该功能在相机拍摄的每一帧(每秒捕获25帧)上触发。
但是,回调函数中的代码似乎是按顺序执行的,而不是按预期在一行的所有帧上执行的。
例如:在2秒钟内捕获1-50帧。回调函数需要0.5秒才能运行。 当前有问题的结果:回调代码仅在第1、12、25、37、50帧上执行(每0.5秒,顺序地,每次仅在当前帧上执行)
SDK声明在线程上下文中调用回调函数以启用UI控件,并且开发人员应将线程上下文切换到主UI线程。
我正在使用布尔标志来确定是否处理当前帧。
@Override
public void OnFrameGetThermAppTemperatures(int[] temperature,int width,int height) {
if (isRecording) {
handleFrame(frameArray);
}
}
我需要执行回调函数,就像所有帧都在“队列”中一样,并且按照捕获它们的顺序(FIFO)对它们进行全部处理。