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
相关产品推荐
相关产品推荐

