我想知道是否可以从相机预览中保存图像,可能每2-3秒一张图像。你能给我的任何例子吗?
我发现这是一个可能的解决方案,我知道如何从字节数组保存图像,但我如何继续保存每个第N帧?我正在考虑存储系统正常运行时间并在每个帧中检查它,但它似乎有点蹩脚。有没有更好的办法?有没有办法可以获得预览帧率等信息?
Android: How to save a preview frame as jpeg image?
TNX。
答案 0 :(得分:2)
我已经能够使用YUV420-to-RGB
提供的Runnable
算法将预览流中的图像转换为可用格式。在我的应用程序中,为了分析颜色,我每隔2-3秒也会这样做。
您可以编写适当的Handler.postDelayed()
并使用Message
(请参阅here)进行链接调用以获得适当的时间间隔。您也可以将Handler.sendMessageDelayed()
和Handler.handleMessage()
与覆盖{{1}}结合使用以获得相同的效果。
关键思想是包含代码以在代码中发送(延迟)另一条相同的消息来处理该消息。这可以实现连续捕获。当您最终决定停止申请时,请小心清除消息管道!
答案 1 :(得分:1)
您可以使用CountDownTimer
。您必须覆盖onPreviewFrame
。在那里你打电话给YUV420
。在CountDownTimer
中,您可以每5秒调用一次自己的屏幕截图方法。或者您使用ArrayList<Bitmap>
并添加onPreviewFrame
中的位图。捕获屏幕截图后,您可以保存所有位图....