两个视频在处理过程中一个接一个播放

时间:2015-11-18 14:14:31

标签: video processing

我对处理非常陌生,但我试图让两个视频文件一个接一个地播放,但它只播放第一个然后停止播放。提前感谢您的建议!

import processing.video.*;

Movie mov;
Movie mov2;

boolean mo = true;

void setup(){
  size(810, 540);

  if (mo == true){
  mov = new Movie(this, "Vid5.mp4");
  mov.play();
  }

  if (mov.time() >= mov.duration()){
  mov.stop();
  mo = false;
 }
 }

void movieEvent(Movie m){
  m.read();

  if (mo == false){
  mov2 = new Movie(this, "Vid1.mp4");
  mov2.play(); 
  }
}

void draw(){
  if (mo == true){ 
  image(mov, 0, 0, width, height);
  } else {
  image (mov2, 0, 0, width, height);
}
} 

1 个答案:

答案 0 :(得分:1)

通过适当的缩进,您的代码将更容易阅读。只需在处理编辑器中按ctrl+t,它就会自动缩进。

但是你的主要问题是因为你只是在setup()函数的草图的最开头检查第一部电影是否完成一次

相反,您需要不断检查电影是否完成。您可以从draw()函数执行此操作。像这样:

import processing.video.*;

Movie mov;
Movie mov2;

boolean mo = true;

void setup() {
  size(810, 540);

  mov = new Movie(this, "Vid5.mp4");
  mov.play();
}

void movieEvent(Movie m) {
  m.read();
}

void draw() {
  if (mo == true) { 
    image(mov, 0, 0, width, height);
  } else {
    image (mov2, 0, 0, width, height);
  }

  if (mo && mov.time() >= mov.duration()) {
    mov.stop();
    mo = false;
    mov2 = new Movie(this, "Vid1.mp4");
    mov2.play();
  }
} 

请注意,此代码未经过测试,因此您可能需要稍微修改一下,但基本答案是您需要检查第一部电影是否在草图开头只做了一次。

相关问题