【发布时间】:2015-08-05 12:26:52
【问题描述】:
我正在处理并希望自动一个接一个地播放多个视频。下面是我当前的代码,但是当第一个视频完成播放时,下一个视频不会自动开始。希望你能帮忙。
import processing.video.*;
Movie myMovie1, myMovie2, myMovie3, myMovie4, myMovie5, myMovie6;
boolean playMovie1=true;
boolean playMovie2=false;
boolean playMovie3=false;
boolean playMovie4=false;
boolean playMovie5=false;
boolean playMovie6=false;
void setup(){
size(800,500);
myMovie1 = new Movie(this, "ch1.mp4");
myMovie2 = new Movie(this, "ch2.mp4");
myMovie3 = new Movie(this, "ch3.mp4");
myMovie4 = new Movie(this, "ch4.mp4");
myMovie5 = new Movie(this, "ch5.mp4");
myMovie6 = new Movie(this, "ch6.mp4");
}
void draw(){
background(0);
if(playMovie1==true){
myMovie1.play();
image(myMovie1,0,0);
if(myMovie1.time()>=myMovie1.duration()){
myMovie1.stop();
playMovie1=false;
playMovie2=true;
}
}
if(playMovie2==true){
myMovie2.play();
image(myMovie2,0,0);
if(myMovie2.time()>=myMovie2.duration()){
myMovie2.stop();
playMovie2=false;
playMovie3=true;
}
}
if(playMovie3==true){
myMovie3.play();
image(myMovie3,0,0);
if(myMovie3.time()>=myMovie3.duration()){
myMovie3.stop();
playMovie3=false;
playMovie4=true;
}
}
if(playMovie4==true){
myMovie4.play();
image(myMovie4,0,0);
if(myMovie4.time()>=myMovie4.duration()){
myMovie4.stop();
playMovie4=false;
playMovie5=true;
}
}
if(playMovie5==true){
myMovie5.play();
image(myMovie5,0,0);
if(myMovie5.time()>=myMovie5.duration()){
myMovie5.stop();
playMovie5=false;
playMovie6=true;
}
}
if(playMovie6==true){
myMovie6.play();
image(myMovie6,0,0);
if(myMovie6.time()>=myMovie6.duration()){
myMovie6.stop();
playMovie6=false;
}
}
}
void movieEvent(Movie m){
m.read();
}
【问题讨论】:
-
您是否尝试过添加打印语句来确定程序的执行何时与您的预期不同?它是否在您期望的时候输入每个 if 语句?当您在同一部电影中多次拨打
play()时会发生什么? -
您好 经过一些测试后,问题似乎出在:if(myMovie1.time()>=myMovie1.duration())。 to 函数比较当前视频时间(以秒为单位)和影片的持续时间。我认为视频持续时间的小数秒数与特定的视频秒数不匹配。因为如果我删除持续时间函数并将小数点后一位秒为 5.0,则该函数和一切正常。
标签: video processing