2014-12-06 8 views
0

여기에 제가 작업중인 코드에 대한 링크가 있습니다. https://github.com/positlabs/lpl-processor/blob/master/lpl_processor/lpl_processor.pde처리 과정에서 createGraphics가 처리되지 않습니다.

문제는 영화 크기를 추측하고 싶지만 영화의 첫 번째 프레임을 읽을 때까지 기다려야한다는 것입니다. setup()을 제외한 createGraphics()에 전화를 걸면 실패합니다.

여기에 응축 된 테스트 케이스가 있습니다.

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 함수이지만, 초기화 약간 펑키 있습니다.