Processing 处理视频时保持黑色

Processing 处理视频时保持黑色,processing,Processing,我对处理非常陌生,所以如果这是一个愚蠢的问题,请原谅我。 如果有以下代码:` import processing.video.*; Movie myVideo; int video_width = 768; int video_height = 576; int video_slice_x = video_width/2; int window_width = 1000; int window_height = video_height; int draw_posi

我对处理非常陌生,所以如果这是一个愚蠢的问题,请原谅我。 如果有以下代码:`

import processing.video.*;

Movie myVideo;
int video_width     = 768;
int video_height    = 576;
int video_slice_x   = video_width/2;
int window_width    = 1000;
int window_height   = video_height;
int draw_position_x = 0; 
boolean newFrame  = false;

void setup() {
  myVideo = new Movie(this, "B1.mov");
  size(window_width, window_height, P2D);
  background(0);
  myVideo.loop();
}

void movieEvent(Movie myMovie) {
  myMovie.read();
  newFrame = true;
}

void draw() {
  if (newFrame) {
    loadPixels();
    for (int y=0; y<window_height; y++){
      int setPixelIndex = y*window_width + draw_position_x;
      int getPixelIndex = y*video_width  + video_slice_x;
      pixels[setPixelIndex] = myVideo.pixels[getPixelIndex];
    }
    updatePixels();

    draw_position_x++;
    if (draw_position_x >= window_width) {
      exit();
    }
    newFrame = false;
  }
}`
导入处理。视频。*;
电影我的视频;
int video_WITH=768;
int video_高度=576;
int video_slice_x=视频宽度/2;
int窗口_宽度=1000;
int窗口高度=视频高度;
int draw_position_x=0;
布尔newFrame=false;
无效设置(){
myVideo=新电影(这是“B1.mov”);
尺寸(窗宽、窗高、P2D);
背景(0);
myVideo.loop();
}
作废电影事件(电影我的电影){
myMovie.read();
newFrame=true;
}
作废提款(){
如果(新帧){
loadPixels();
用于(int y=0;y=窗宽){
退出();
}
newFrame=false;
}
}`
然而,我能听到音乐播放,但屏幕仍然是黑色的。有人知道如何解决这个问题吗? 提前谢谢。

您必须

image(myVideo, 0, 0);
进入
draw()
函数并删除
background 0
设置()
。 显然,您的视频必须放在程序文件夹中。 请注意正确使用它

因此,您的代码将类似于:

import processing.video.*;

Movie myVideo;
int video_width     = 768;
int video_height    = 576;
int video_slice_x   = video_width/2;
int window_width    = 1000;
int window_height   = video_height;
int draw_position_x = 0; 
boolean newFrame  = false;

void setup() {
  myVideo = new Movie(this, "B1.mov");
  size(window_width, window_height, P2D);
  myVideo.loop();
}

void movieEvent(Movie myMovie) {
  myMovie.read();
  newFrame = true;
}

void draw() {
  image(myVideo, 0, 0);
  if (newFrame) {
    loadPixels();
    for (int y=0; y<window_height; y++){
      int setPixelIndex = y*window_width + draw_position_x;
      int getPixelIndex = y*video_width  + video_slice_x;
      pixels[setPixelIndex] = myVideo.pixels[getPixelIndex];
    }
    updatePixels();

    draw_position_x++;
    if (draw_position_x >= window_width) {
      exit();
    }
    newFrame = false;
  }
}
导入处理。视频。*;
电影我的视频;
int video_WITH=768;
int video_高度=576;
int video_slice_x=视频宽度/2;
int窗口_宽度=1000;
int窗口高度=视频高度;
int draw_position_x=0;
布尔newFrame=false;
无效设置(){
myVideo=新电影(这是“B1.mov”);
尺寸(窗宽、窗高、P2D);
myVideo.loop();
}
作废电影事件(电影我的电影){
myMovie.read();
newFrame=true;
}
作废提款(){
图像(myVideo,0,0);
如果(新帧){
loadPixels();
用于(int y=0;y=窗宽){
退出();
}
newFrame=false;
}
}