我正在编写一个应用程序,用于从Android设备的摄像头捕获视频。我试图获取视频的所有帧而不重复帧并将它们存储在某种列表中。通过“不重复帧”,我的意思是:
如果我调用MediaMetadataRetriever.getFrameAtTime(time, OPTION)
,如果time
没有太大变化,那么对此方法的两次调用可能会返回相同的帧。我想在下一次调用time
之前增加getFrameAtTime()
,这样我就不会再次获得相同的帧了。
显然,我也想确保我不会错过任何帧。
执行此操作的一种方法是获取视频的每秒帧数,并按帧捕获的频率递增time
。但是,如何获取每秒捕获的视频的帧数?
或者我还能怎样做到这一点?
答案 0 :(得分:1)
您可以注册PreviewCallback处理程序。此接口声明onPreviewCallback()方法,该方法完全按照您的要求调用:每个不同的视频帧一次。参数是原始相机图像。