代码之家  ›  专栏  ›  技术社区  ›  Giuseppe Angora

使用视频库加载视频时处理不可管理的CPU开销

  •  0
  • Giuseppe Angora  · 技术社区  · 7 年前

    我试着做一个简单的思考:当按下按钮时,我使用处理视频库加载视频,每个按钮都与不同的视频相关联,例如按钮1与视频1、按钮2与视频2,等等。代码可以工作,但是每次我调用一个视频,同样我已经加载了,重写global变量CPU的消耗量增长,三次加载后达到40%,七次视频后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 回复  |  直到 7 年前
        1
  •  2
  •   itzFlubby    7 年前

    你在循环加载电影,这意味着它们不会停止。所以你按下的按钮越多,同时处理的视频就越多。每按一次按钮,你应该先停止旧电影的播放过程,然后再开始新的电影。

    推荐文章