处理草图中使用Websocket的NullPointerException

时间:2018-05-15 14:53:28

标签: websocket nullpointerexception processing

我在Processing中设置了一个使用语音识别库http://florianschulz.info/stt/正常工作的示例

我正在尝试将字符串的内容发送到Draw函数,并且当您在void setup

中定义默认值时,它会导致NullException错误

首先我虽然我应该设置一个全局字符串消息,但无论我如何尝试定义它,它都不会使用除测试单词之外的任何内容来更新绘图函数。这是因为我在void setup()中将其定义为具有值" test"

但是,如果删除单词test,则会再次导致出现空异常错误。

String msg默认为值test,但是一旦你说到笔记本电脑麦克风,控制台应该通过text()更新单词或句子;函数反过来出现在Processing java窗口中,带有更新的单词。

import websockets.*;
WebsocketServer socket;
PFont f;
String msg;

    void setup() {

      socket = new WebsocketServer(this, 1337, "/p5websocket");
      noLoop();
      size(480, 120);
      f = createFont("Arial",16,true); // Arial, 16 point, anti-aliasing on 
       if (msg == null){
         msg="test";
         println(msg);
      }
      else{
        println(msg);

      }
    }

    void draw() {
      background(100);
      textFont(f,36);
      fill(180);  
      println(msg);
      text(msg, 10, 10, 70, 80);// Text wraps within text box

    }

    void webSocketServerEvent(String msg){

      println(msg);

    }

1 个答案:

答案 0 :(得分:0)

您是否在询问如何将草图级.join()变量分配给传递到msg函数的msg参数的值?

请注意,仅仅因为它们具有相同的名称并不意味着它们是相同的变量。它们是两个不同范围内的两个不同变量。如果要引用或重新分配草图级变量,可以使用webSocketServerEvent()关键字消除歧义:

this

或者您可以重命名其中一个变量:

void webSocketServerEvent(String msg){
  this.msg = msg;
  println(msg);
}