【问题标题】:Processing createGraphics fails outside of setup method在 setup 方法之外处理 createGraphics 失败
【发布时间】:2014-12-06 06:18:38
【问题描述】:

这是我正在使用的代码的链接。 https://github.com/positlabs/lpl-processor/blob/master/lpl_processor/lpl_processor.pde

问题是我想推断电影尺寸,但我需要等到电影的第一帧被读取。当我尝试在除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
`

【问题讨论】:

    标签: java processing pgraphics


    【解决方案1】:

    执行此操作的正确方法是在 draw 函数中,但它使初始化有点奇怪。

    【讨论】:

      猜你喜欢
      • 2021-04-24
      • 2011-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-09
      相关资源
      最近更新 更多