我已经看过像Fast Burst Camera Lite这样的应用程序拍摄没有任何延迟的连拍(当然,在照片质量方面有所妥协)。我只是好奇这些应用程序是如何工作的。我在互联网上看到了一些网站,但没有令人满意的答案。所以,我只是想把它发布在这里,以便进行一次很好的讨论。没有正确或错误的答案。我只想讨论。欢迎任何想法。
答案 0 :(得分:1)
我观察到的一件事是这个应用程序“快速相机精简版”没有滞后。它可能正在使用多线程。一个线程只捕获图像而另一个线程保存它。为了减少延迟,应用程序可能只有第一个线程来捕获图像并将图像数据转储到队列中,而第二个线程则从队列中读取数据并将其写入SD卡。由于队列可以同时被两个(或可能是多个)线程访问,我们需要一个像ConcurrentLinkedQueue
这样的线程安全队列。
除此之外,我认为我可能需要为相机定义我自己的代码,而不是仅仅调用相机活动,因为默认相机活动在捕获照片后有滞后。我可以只使用相机输入(用于查看我指向的位置)开始全屏活动,并在单击按钮时有一个存储当前相机视图(或拍摄图像)的按钮。