我正在使用DataInputStream读取视频文件。然后,我使用字节数组逐个读取每帧的数据,然后连续显示它们。我的问题是,如果我想再次看到前一帧,或者未来的一帧怎么办?是否可以退后一步,或者是否有其他可能的方法?
我会为此使用内存映射方法。如果您知道每个帧的大小,并且它是固定的,那么您就没有理由跳过(向前/向后)并简单地映射该帧(或帧序列)。
作为一个"简单"的解决方案,你可以用一个PushbackInputStream
来包装你的DataInputStream
。但是,我不会依赖它,而是编写自己的缓冲策略。你为什么不只在内存中缓存最后一帧?