使用视频库加载视频时处理难以管理的 CPU 成本
Processing unmanageable CPU cost when a video is loaded using video library
我想做一个简单的思考:按下按钮时,我使用处理视频库加载视频,每个按钮都与不同的视频相关联,例如按钮 1 与视频 1,按钮 2 与视频 2,依此类推。代码有效,但每次我调用视频时,同样我已经加载,重写全局变量 CPU 的消耗增长,在第三次加载后达到 40%,7 个视频后 CPU 接近 100%。提取代码:
import processing.video.*;
Movie movie;
void setup() {
size(1280, 720, P3D);
background(0);
}
void draw() {
//image(movie, 0, 0, width, height);
if (but1_1==1) {
println("video 1");
movie = new Movie(this, "1.mp4"));
movie.loop();
movie.volume(0);
}
if (but1_2==1) {
println("video 2");
movie = new Movie(this, "2.mp4"));
movie.loop();
movie.volume(0);
}
if (but1_3==1) {
println("video 3");
movie = new Movie(this, "3.mp4"));
movie.loop();
movie.volume(0);
}
}
如您所见,CPU 消耗增长不应是基于任何原因:每次加载新视频(或相同视频)时,实例化对象电影总是被重写。有什么建议吗?
您正在循环加载电影,这意味着它们不会停止。因此,您按下的按钮越多,同时处理的视频就越多。每按一次按钮,您应该先停止旧电影的电影播放过程,然后再开始新电影。
我想做一个简单的思考:按下按钮时,我使用处理视频库加载视频,每个按钮都与不同的视频相关联,例如按钮 1 与视频 1,按钮 2 与视频 2,依此类推。代码有效,但每次我调用视频时,同样我已经加载,重写全局变量 CPU 的消耗增长,在第三次加载后达到 40%,7 个视频后 CPU 接近 100%。提取代码:
import processing.video.*;
Movie movie;
void setup() {
size(1280, 720, P3D);
background(0);
}
void draw() {
//image(movie, 0, 0, width, height);
if (but1_1==1) {
println("video 1");
movie = new Movie(this, "1.mp4"));
movie.loop();
movie.volume(0);
}
if (but1_2==1) {
println("video 2");
movie = new Movie(this, "2.mp4"));
movie.loop();
movie.volume(0);
}
if (but1_3==1) {
println("video 3");
movie = new Movie(this, "3.mp4"));
movie.loop();
movie.volume(0);
}
}
如您所见,CPU 消耗增长不应是基于任何原因:每次加载新视频(或相同视频)时,实例化对象电影总是被重写。有什么建议吗?
您正在循环加载电影,这意味着它们不会停止。因此,您按下的按钮越多,同时处理的视频就越多。每按一次按钮,您应该先停止旧电影的电影播放过程,然后再开始新电影。