Processing 2.1.1 无法使用video和movie问题解决方案

升级到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:XXXXprocessing-2.1.1modesjavalibrariesvideolibrary目录下的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

爱好编程、喜欢计算机、也喜欢美食~
原文地址:https://www.cnblogs.com/x5115x/p/3601874.html