我正在尝试从android中的视频文件中获取帧,唯一的替代方案(已经编译好可以使用)是videoToGif项目。它在Android内部使用JavaCV,JavaCpp和Java SE!最后的apk真的很大,但我只做了一个学术项目...
错误 我正在使用以下代码:
ModifiedFrameGrabber frameGrabber = new ModifiedFrameGrabber(VIDEO_PATH);
IplImage frame = null;
try
{
frameGrabber.start();
frame = frameGrabber.grab();
} catch(Exception e){...}
byte[] data = frame.getByteBuffer().array();
在最后一行我收到错误:
Caused by: java.lang.UnsupportedOperationException
at java.nio.DirectByteBuffer.protectedArray(DirectByteBuffer.java:292)
at java.nio.ByteBuffer.array(ByteBuffer.java:144)
at my.package.onCreate(MyClass:x)
任何人都可以帮助我吗?似乎问题出现在Java API中......
答案 0 :(得分:4)
直接NIO缓冲区没有数组。请致电get()
而不是array()
。