我必须将左侧视频的一半与右侧视频进行反射和镜像。我尝试了这段代码,但是当我激活效果时,视频仅显示第一帧并且不播放。视频冻结,我听到声音。怎样才能播放视频的效果呢?谢谢!
import processing.video.*;
boolean flipVideo = false;
Movie movie;
PGraphics flippedBuffer; // PGraphics buffer for the flipped video
PImage leftHalf;
void setup() {
size(640, 480);
frameRate(30);
movie = new Movie(this, "movie.mov");
movie.loop();
movie.read();
flippedBuffer = createGraphics(movie.width, movie.height); // Initialize the buffer
}
void draw() {
if (movie.available() && overlay.available()) {
movie.read();
}
movie.loadPixels();
// Create the flipped video and store it in the PGraphics buffer
if (flipVideo) {
flippedBuffer.beginDraw();
leftHalf = get(0, 0, width/2, height);
flippedBuffer.translate(width, 0);
flippedBuffer.scale(-1, 1);
flippedBuffer.image(leftHalf, 0, 0);
flippedBuffer.endDraw();
} else {
flippedBuffer.beginDraw();
flippedBuffer.image(movie, 0, 0); // Use the original video
flippedBuffer.endDraw();
}
}
void movieEvent(Movie m) {
m.read();
}
void addTuioObject(TuioObject tobj) {
...
}
void removeTuioObject(TuioObject tobj) {
...
}
我不确定我是否理解你想要实现的目标,但如果你只是想并排显示同一部电影,这个源代码应该可以做到:
import processing.video.*;
Movie movie;
void setup() {
size(960, 270); // window width should be twice movie width
movie = new Movie(this, "xxxx.mp4"); // file in 'data' sketch folder
movie.loop(); // Use play() to play just once.
}
void movieEvent(Movie movie) {
movie.read(); // Read new frames from the movie.
}
void draw() {
image(movie, 0, 0); // Display side by side
image(movie, width/2, 0);
}