You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Processing中通过键盘按键切换对应视频的代码求助

Processing按键触发对应视频播放实现代码

前置准备

先在Processing的「库管理器」中安装官方Video库,将你准备好的5个视频文件全部放入项目的data文件夹中。

完整实现代码

// 导入视频库
import processing.video.*;

// 存储5个视频对象的数组
Movie[] videos = new Movie[5];
// 对应触发的按键,可根据你的需求修改
char[] triggerKeys = {'a', 's', 'd', 'f', 'g'};
// 记录当前正在播放的视频索引
int currentVidIndex = -1;

void setup() {
  size(1280, 720);
  // 加载5个视频,替换成你自己的视频文件名
  videos[0] = new Movie(this, "video1.mp4");
  videos[1] = new Movie(this, "video2.mp4");
  videos[2] = new Movie(this, "video3.mp4");
  videos[3] = new Movie(this, "video4.mp4");
  videos[4] = new Movie(this, "video5.mp4");
}

void draw() {
  background(0);
  // 如果有正在播放的视频,绘制到画布上
  if (currentVidIndex != -1 && videos[currentVidIndex].available()) {
    videos[currentVidIndex].read();
    image(videos[currentVidIndex], 0, 0, width, height);
  }
}

// 按键触发逻辑
void keyPressed() {
  // 遍历匹配按下的按键
  for (int i = 0; i < triggerKeys.length; i++) {
    if (key == triggerKeys[i]) {
      // 如果有正在播放的视频,先停止
      if (currentVidIndex != -1) {
        videos[currentVidIndex].stop();
      }
      // 切换到目标视频并播放
      currentVidIndex = i;
      videos[currentVidIndex].play();
      // 如果需要循环播放,把上面的play()换成loop()即可
      break;
    }
  }
}

自定义修改说明

  • 可修改triggerKeys数组里的字符,换成你需要绑定的按键
  • 加载视频时替换引号里的文件名,和你data文件夹里的视频文件名保持一致
  • 修改image()方法的后四个参数,可以调整视频的绘制位置和显示尺寸
  • 如果需要按下按键后视频从头开始播放,无需修改逻辑,现有代码已经实现停止旧视频后重新播放新视频的效果

内容的提问来源于stack exchange,提问作者marcmasta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 23:15:03