2014-12-06 3 views
0

Вот ссылка на код, с которым я работаю.Обработка createGraphics выходит за пределы метода настройки

Проблема в том, что я хотел бы сделать вывод о размерах фильма, но мне нужно подождать, пока не будет прочитан первый кадр фильма. Когда я пытаюсь позвонить createGraphics() куда угодно, кроме setup(), он терпит неудачу.

Вот конденсированный тестовый чехол.

import processing.video.*; 

    Movie movie; 
    PGraphics graphics; 

    void setup() 
    { 
     size(800, 600); 

     movie = new Movie(this, "sparkle.mov"); 
     movie.play(); 

     graphics = createGraphics(800, 600); // succeess graphic! 
    } 

    void movieEvent(Movie m) { 
     m.read(); 
     graphics = createGraphics(m.width, m.height); // failure grahic!! 
    } 


And here is the stack trace. 



` 
java.lang.NullPointerException 
    at processing.core.PApplet.makeGraphics(PApplet.java:1916) 
    at processing.core.PApplet.createGraphics(PApplet.java:1872) 
    at processing.core.PApplet.createGraphics(PApplet.java:1791) 
    at sketch_141206a.movieEvent(sketch_141206a.java:35) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at processing.video.Movie.fireMovieEvent(Unknown Source) 
    at processing.video.Movie.invokeEvent(Unknown Source) 
    at processing.video.Movie$2.rgbFrame(Unknown Source) 
    at org.gstreamer.elements.RGBDataAppSink$AppSinkNewBufferListener.newBuffer(RGBDataAppSink.java:162) 
    at org.gstreamer.elements.AppSink$2.callback(AppSink.java:184) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at com.sun.jna.CallbackReference$DefaultCallbackProxy.invokeCallback(CallbackReference.java:455) 
    at com.sun.jna.CallbackReference$DefaultCallbackProxy.callback(CallbackReference.java:485) 
error, disabling movieEvent() for sparkle.mov 
` 

ответ

0

Правильный способ сделать это в функции draw, но это делает инициализацию немного напуганный.