当前位置: 首页 > 知识库问答 >
问题:

如何在两个窗口中播放视频,只需在处理过程中使用一个草图

申屠锦
2023-03-14

我想在两个窗口中播放视频,只需在处理过程中使用一个草图。我还想使用串行通信。。串行通信很好,但视频不起作用。我猜程序找不到视频的位置。

我在处理中搜索了单个草图的多个窗口。我提到了这个。如何在加工过程中创建单个草图的多个窗口?

这是我写的代码。

我希望你能帮帮我拜托

import processing.video.*;
import processing.serial.*;

Serial myPort;  // Create object from Serial class
String val;     // Data received from the serial port

Movie mov;

void setup() {
  size(100, 100);

  String[] args = {"TwoFrameTest"};


 SecondApplet sa = new SecondApplet();
  ThirdApplet na = new ThirdApplet();
  PApplet.runSketch(args, sa);
  PApplet.runSketch(args, na);

  String portName = Serial.list()[1];
  myPort = new Serial(this, portName, 9600);

  sa.mov = new Movie(this, "transit.mov");
  sa.mov.loop();

}




void draw() {
  background(0);
  ellipse(50, 50, 10, 10);

  if (myPort.available() > 0) {
    if ( (val = myPort.readStringUntil(ENTER)) != null )  val = trim(val);
    else return;
    if (val != null) {
      println(val);
    }
    }

}     

public class SecondApplet extends PApplet {
public Movie mov;

  public void settings() {
    size(500, 500);
  }


  public void draw() {

    fill(0);
    ellipse(100, 50, 10, 10);

  if ("3Low".equals(val)) {
    fill(255,random(255),200);
      ellipse(60,20,100,100);
    }

    sa.image(sa.mov,0,0);

  }
}



public class ThirdApplet extends PApplet {


  public void settings() {
    size(500, 500);
  }

  public void draw() {

    fill(0);
    ellipse(100, 50, 10, 10);

  if ("3Low".equals(val)) {
    fill(255,random(255),200);
      ellipse(60,20,100,100);
    }


  }
}

共有1个答案

阴凯歌
2023-03-14

我猜程序找不到视频的位置。

请具体一点。你看到了什么确切的错误消息?你期望会发生什么?相反会发生什么?

我想在两个窗口中播放视频,只需在处理过程中使用一个草图。

您发布的代码使用了三个不同的草图,您对每个草图的范围都做了奇怪的事情。只需编写每个草图,就像它们完全分开一样,然后最后添加链接代码。

我不明白为什么你不能用两个不同的草图来播放两部不同的电影。它可能看起来像这样:

Movie movieOne;

void setup() {
  size(100, 100);

  movieOne = new Movie(this, "MovieOne.mov");
  movieOne.loop();

  String[] args = {"SecondSketch"};
  SecondSketch sa = new SecondSketch();
  PApplet.runSketch(args, sa);
}

void draw() {
  image(movieOne, 0, 0);
}     

public class SecondSketch extends PApplet {
  Movie movieTwo;

  public void settings() {
    size(500, 500);
    movieTwo = new Movie(this, "MovieTwo.mov");
    movieTwo.loop();
  }

  public void draw() {
    image(movieTwo, 0, 0);
  }
}

请注意,这只是示例代码,我甚至没有尝试编译它。你可能需要改变一些事情来让它工作,但是这应该会让你对要采取的方法有一个大致的了解。

一个更简单的选项可能是使用createGraphics()函数创建两个缓冲区。向每个缓冲区绘制电影,然后将缓冲区绘制到屏幕上。

java prettyprint-override">Movie movieOne;
Movie movieTwo;

PGraphics bufferOne;
PGraphics bufferTwo;

void setup() {
  size(1000, 500);

  bufferOne = createGraphics(500, 500);
  bufferTwo = createGraphics(500, 500);

  movieOne = new Movie(this, "MovieOne.mov");
  movieOne.loop();

  movieTwo = new Movie(this, "MovieTwo.mov");
  movieTwo.loop();
}

void draw() {
  bufferOne.beginDraw();
  bufferOne.image(movieOne, 0, 0);
  bufferOne.endDraw();

  bufferTwo.beginDraw();
  bufferTwo.image(movieTwo, 0, 0);
  bufferTwo.endDraw();

  image(bufferOne, 0, 0);
  image(bufferTwo, 500, 0);
}   

同样,这只是一个示例代码,您可能需要修改它才能完美地工作。

更多信息可以在参考文献中找到。

如果你仍然无法让它工作,请在新问题中发布更新的MCVE,我们将从那里开始。

 类似资料:
  • 问题内容: 我想通过在“处理”中仅使用一个草图来创建两个窗口。 我想做的是,如果我在一个窗口中单击一个按钮,则某些图像会出现在另一个窗口中。 我搜索了Google并找到了一些示例。实际上,我在此“堆栈溢出网络”中发现了相同的问题。这里是链接。 在处理中 http://forum.processing.org/one/topic/multiple- windows-2-4-2011.html中 创建

  • 我目前正在研究一种数据可视化技术,它从电影中获取信息,实时播放并同时创建。为此,我想有两个独立的草图窗口。一个窗口应显示实时播放的电影,另一个窗口应显示正在进行的可视化。 我似乎不知道如何轻松地添加另一个草图窗口,并尝试了一些在处理3中不再工作的示例。 然后我偶然发现了这个例子:https://gist.github.com/atduskgreg/666e46c8408e2a33b09a 尽管我可

  • 问题内容: 如何在“处理”中创建单个草图的多个窗口? 实际上我想在一个窗口中检测并跟踪特定颜色(通过网络摄像头),然后将检测到的坐标显示为另一个窗口中的点,直到现在我仍可以在检测到该颜色的同一个窗口中显示这些点。我想将其拆分为两个不同的窗口。 问题答案: 您需要创建一个新框架和一个新的PApplet …这是一个示例草图:

  • 如何在加工过程中创建单个草图的多个窗口? 实际上,我想在一个窗口中检测并跟踪特定的颜色(通过网络摄像头),并在另一个窗口中将检测到的坐标显示为一个点。到目前为止,我能够在同一个窗口中显示检测到它的点。但我想把它分成两个不同的窗口。

  • 我想通过在处理中使用一个草图来创建两个窗口。 我想做的是,如果我在一个窗口中单击一个按钮,那么一些图像就会出现在另一个窗口中。 我搜索了谷歌,找到了一些例子。实际上,我在这个“堆栈溢出网络”中发现了相同的问题。以下是链接。 在处理中为单个草图创建多个窗口http://forum.processing.org/one/topic/multiple-windows-2-4-2011.html 这是第二

  • 如何在Android中通过任何视频链接播放视频(例如—https://youtu.be/SiD77g9KfhA“也可以是另一个媒体门户的另一个视频链接)。我尝试过这样做,但遇到了一个错误。 我的代码 错误。