我对处理非常陌生,但我试图让两个视频文件一个接一个地播放,但它只播放第一个然后停止播放。提前感谢您的建议!
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);
}
}
答案 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();
}
}
请注意,此代码未经过测试,因此您可能需要稍微修改一下,但基本答案是您需要检查第一部电影是否在草图开头只做了一次。