升级到2.1.1后,尝试着运行了一下sample中的video和movie,结果都报错,上网搜了一下,找到解决方法。
1. 首先来看movie的错误,如下:
JNA: Callback org.gstreamer.Bus$15@33b2e7 threw the following exception: java.lang.ExceptionInInitializerError at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at org.gstreamer.lowlevel.NativeObject.objectFor(NativeObject.java:191) at org.gstreamer.lowlevel.GTypeMapper$3.fromNative(GTypeMapper.java:129) at com.sun.jna.CallbackReference$DefaultCallbackProxy.invokeCallback(CallbackReference.java:444) at com.sun.jna.CallbackReference$DefaultCallbackProxy.callback(CallbackReference.java:485) Caused by: java.lang.NullPointerException at com.sun.jna.Native.extractFromResourcePath(Native.java:797) at com.sun.jna.Native.extractFromResourcePath(Native.java:781) at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:209) at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:322) at com.sun.jna.Library$Handler.<init>(Library.java:142) at com.sun.jna.Native.loadLibrary(Native.java:387) at org.gstreamer.lowlevel.GNative.loadNativeLibrary(GNative.java:59) at org.gstreamer.lowlevel.GNative.loadLibrary(GNative.java:51) at org.gstreamer.lowlevel.GstNative.load(GstNative.java:49) at org.gstreamer.lowlevel.GstNative.load(GstNative.java:43) at org.gstreamer.message.TagMessage.<clinit>(TagMessage.java:39) ... 8 more JNA: Callback org.gstreamer.Bus$15@33b2e7 threw the following exception: java.lang.NoClassDefFoundError: Could not initialize class org.gstreamer.message.TagMessage at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at org.gstreamer.lowlevel.NativeObject.objectFor(NativeObject.java:191) at org.gstreamer.lowlevel.GTypeMapper$3.fromNative(GTypeMapper.java:129) at com.sun.jna.CallbackReference$DefaultCallbackProxy.invokeCallback(CallbackReference.java:444) at com.sun.jna.CallbackReference$DefaultCallbackProxy.callback(CallbackReference.java:485) JNA: Callback org.gstreamer.elements.AppSink$2@4d5e01 threw the following exception: java.lang.ExceptionInInitializerError at org.gstreamer.elements.AppSink.gst(AppSink.java:38) at org.gstreamer.elements.AppSink.pullBuffer(AppSink.java:128) at org.gstreamer.elements.RGBDataAppSink$AppSinkNewBufferListener.newBuffer(RGBDataAppSink.java:144) at org.gstreamer.elements.AppSink$2.callback(AppSink.java:184) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.sun.jna.CallbackReference$DefaultCallbackProxy.invokeCallback(CallbackReference.java:455) at com.sun.jna.CallbackReference$DefaultCallbackProxy.callback(CallbackReference.java:485) Caused by: java.lang.NullPointerException at com.sun.jna.Native.extractFromResourcePath(Native.java:797) at com.sun.jna.Native.extractFromResourcePath(Native.java:781) at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:209) at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:322) at com.sun.jna.Library$Handler.<init>(Library.java:142) at com.sun.jna.Native.loadLibrary(Native.java:387) at org.gstreamer.lowlevel.GNative.loadNativeLibrary(GNative.java:59) at org.gstreamer.lowlevel.GNative.loadLibrary(GNative.java:51) at org.gstreamer.lowlevel.GstNative.load(GstNative.java:49) at org.gstreamer.lowlevel.AppAPI.<clinit>(AppAPI.java:38) ... 10 more JNA: Callback org.gstreamer.elements.AppSink$2@4d5e01 threw the following exception: java.lang.NoClassDefFoundError: Could not initialize class org.gstreamer.lowlevel.AppAPI at org.gstreamer.elements.AppSink.gst(AppSink.java:38) at org.gstreamer.elements.AppSink.pullBuffer(AppSink.java:128) at org.gstreamer.elements.RGBDataAppSink$AppSinkNewBufferListener.newBuffer(RGBDataAppSink.java:144) at org.gstreamer.elements.AppSink$2.callback(AppSink.java:184) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.sun.jna.CallbackReference$DefaultCallbackProxy.invokeCallback(CallbackReference.java:455) at com.sun.jna.CallbackReference$DefaultCallbackProxy.callback(CallbackReference.java:485)
这种错误是由于movie例子带的jna版本不对造成的,用3.5.1版本的jna替换C:\XXXX\processing-2.1.1\modes\java\libraries\video\library目录下的jna.jar即可。
2.video错误
video的错误相对movie error来说相对容易解决,安装最新版的Quicktime和WinVDIG即可,需要注意的是,安装Quicktime的时候一定要选择Quicktime for JAVA,否则一定会报错。
上面提到的文件下载地址:http://pan.baidu.com/s/1dDorUJB
这是个好网站,可以下载各种版本的jna:http://www.java2s.com/Code/Jar/j/jna.htm
Processing 2.1.1 无法使用video和movie问题解决方案,布布扣,bubuko.com
Processing 2.1.1 无法使用video和movie问题解决方案
原文:http://www.cnblogs.com/x5115x/p/3601874.html