Camera addCallbackBuffer 机制是如何工作的?
How does Camera addCallbackBuffer mechanism works?
这里是addCallbackBuffer的解释:
http://developer.android.com/reference/android/hardware/Camera.html#addCallbackBuffer(byte[])
我无法理解这种机制以及如何使用它。我们可以添加一个或多个缓冲区。假设我们添加了 10 个缓冲区。填充 10 个缓冲区时调用 OnPreviewFrame 方法吗?
假设从缓冲区队列中删除了一个缓冲区,并使用该缓冲区调用了 OnPreviewFrame。当我们使用到达的缓冲区调用 addCallbackBuffer 方法时,是否将缓冲区添加到队列的头部,然后使用该缓冲区调用下一个 OnPreviewFrame?
调用addCallbackBuffer时,如何获取帧的时间戳?
调用addCallbackBuffer时有没有掉帧?
同时使用 setPreviewCallbackWithBuffer 和 addCallbackBuffer。
首先,您应该调用addCallbackBuffer before calling setPreviewCallbackWithBuffer. You can add buffer by calling addCallbackBuffer for 4-5 frames. It depends on your project. How many bytes a frame requires expains here.。
每次调用onPreviewFrame时,都会使用addCallbackBuffer添加的缓冲区。只要有足够的 addCallbackBuffer 添加的缓冲区,就会调用 onPreviewFrame。如果没有留给 onPreviewFrame 的缓冲区,则开始丢弃帧并且不调用 onPreviewFrame。
所以你应该在执行过程中一直调用addCallbackBuffer。您可以在处理完数据后在 onPreviewFrame 上调用带有字节数组参数的 addCallbackBuffer。这样,您总是可以重复使用相同的缓冲区。
如果有什么地方我没有解释清楚,请告诉我。
这里是addCallbackBuffer的解释: http://developer.android.com/reference/android/hardware/Camera.html#addCallbackBuffer(byte[])
我无法理解这种机制以及如何使用它。我们可以添加一个或多个缓冲区。假设我们添加了 10 个缓冲区。填充 10 个缓冲区时调用 OnPreviewFrame 方法吗?
假设从缓冲区队列中删除了一个缓冲区,并使用该缓冲区调用了 OnPreviewFrame。当我们使用到达的缓冲区调用 addCallbackBuffer 方法时,是否将缓冲区添加到队列的头部,然后使用该缓冲区调用下一个 OnPreviewFrame?
调用addCallbackBuffer时,如何获取帧的时间戳?
调用addCallbackBuffer时有没有掉帧?
同时使用 setPreviewCallbackWithBuffer 和 addCallbackBuffer。
首先,您应该调用addCallbackBuffer before calling setPreviewCallbackWithBuffer. You can add buffer by calling addCallbackBuffer for 4-5 frames. It depends on your project. How many bytes a frame requires expains here.。
每次调用onPreviewFrame时,都会使用addCallbackBuffer添加的缓冲区。只要有足够的 addCallbackBuffer 添加的缓冲区,就会调用 onPreviewFrame。如果没有留给 onPreviewFrame 的缓冲区,则开始丢弃帧并且不调用 onPreviewFrame。
所以你应该在执行过程中一直调用addCallbackBuffer。您可以在处理完数据后在 onPreviewFrame 上调用带有字节数组参数的 addCallbackBuffer。这样,您总是可以重复使用相同的缓冲区。
如果有什么地方我没有解释清楚,请告诉我。