Video 在处理中播放视频
我正在用Arduino读取电容式传感器,触摸到的传感器数量被传送到处理,目前只有1或2个 在处理过程中,我试图根据接收到的传感器数量播放视频。我需要能够在播放过程中切换不同的视频,播放结束后,如果按相同的数字,视频应该跳回开始 这是正在处理的代码Video 在处理中播放视频,video,arduino,processing,Video,Arduino,Processing,我正在用Arduino读取电容式传感器,触摸到的传感器数量被传送到处理,目前只有1或2个 在处理过程中,我试图根据接收到的传感器数量播放视频。我需要能够在播放过程中切换不同的视频,播放结束后,如果按相同的数字,视频应该跳回开始 这是正在处理的代码 import processing.serial.*; 导入处理。视频。*; 电影录影带1、录影带2; 串口; 炭素; 炭素; 布尔播放=假; //浮动时间=0; 无效设置(){ 全屏(JAVA2D); 帧率(25); video1=新电影(这是“re
import processing.serial.*;
导入处理。视频。*;
电影录影带1、录影带2;
串口;
炭素;
炭素;
布尔播放=假;
//浮动时间=0;
无效设置(){
全屏(JAVA2D);
帧率(25);
video1=新电影(这是“redFIN.mp4”);
video2=新电影(本片为“greenFIN.mp4”);
端口=新的串行(这是Serial.list()[0],9600);
}
无效电影事件(电影m){
m、 read();
}
void draw(){
如果(port.available()>0){//如果数据可用,
in=char(port.read());
印刷(英文);
}
如果(in='1'){
视频1.播放();
视频2.停止();
in=先前的in;
if(in==previousIn){
视频1.跳转(0);
}
}
图像(视频1、0、0、宽度、高度);
如果(in=='2'){
视频2.播放();
视频1.停止();
in=先前的in;
if(in==previousIn){
视频2.跳跃(0);
}
}
图像(视频2,0,0,宽度,高度);
}
目前,我可以在视频之间切换,但只能从电影1切换到电影2,当从电影2返回到电影1时,我会得到电影1的音频,但它会一直显示电影2的最后一帧
如果您能深入了解为什么会发生这种情况,我将不胜感激。您已经非常接近了,但仍有几个方面无法达到您预期的效果:
image()
绘制video1
和video2
:只需渲染一个视频if(in==previousIn)
条件可能在设置previousIn
之前发生(顺便说一句,您正在设置Other)。(否则,条件将始终为真)Movie
变量的版本,该变量仅是对video1
或video2
的引用,具体取决于上下文:
import processing.serial.*;
import processing.video.*;
Movie video1, video2, currentVideo;
Serial port;
char in;
char previousIn;
boolean playing = false;
//float time = 0;
void setup() {
fullScreen(JAVA2D);
frameRate(25);
video1 = new Movie(this, "redFIN.mp4");
video2 = new Movie(this, "greenFIN.mp4");
// default to video1
currentVideo = video1;
port = new Serial(this, Serial.list()[0], 9600);
}
void movieEvent(Movie m) {
m.read();
}
void draw() {
if ( port.available() > 0) { // If data is available,
in = char(port.read());
print(in);
}
if (in == '1') {
video1.play();
video2.stop();
if (in == previousIn) {
video1.jump(0);
}
previousIn = in;
currentVideo = video1;
}
if (in =='2') {
video2.play();
video1.stop();
if (in == previousIn) {
video2.jump(0);
}
previousIn = in;
currentVideo = video2;
}
image(currentVideo, 0, 0, width, height);
}
非常感谢,它按预期工作!我想出了一种不同的方法(基于另一个聪明人的代码和更多的代码行),但是你的评论和解释对于学习和更好的理解来说是惊人的!