现在用winform做了avi按帧读取,然后显示出来。结果现在读取到71帧的时候,就会读取失败。试过了很多数据都是这样。ORZ,怀疑是内存不足了,可是又不知道怎么处理。
avi处理用的是https://www.cnblogs.com/qc-id-01/p/7494757.html这个网站里的方法。
具体代码如下

上面的方法是获取视频总帧数的,下面的方法是读取每一帧的。现在用一个定时器来触发下面这个方法,定时器定的时间是50ms,但是时间应该不是问题,因为就算时间设定是500ms也会在同样的地方停止。
具体出问题的是下面方法里的bool flag = aviStream.GetFrameOpen();这句代码,当处理到71帧的时候,这个函数会返回false,说明打开失败。而且这个函数用了dll文件里的函数,根本无法知道里面是怎么运行的。