微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

播放视频时如何禁用键盘输入?

如何解决播放视频时如何禁用键盘输入?

我正在制作一个主视频无限循环运行的应用程序。当用户按下一个键时,比如“a”,与其关联的视频播放,主视频在后台运行。如果因为主视频中没有声音而没有暂停或停止就可以了。

问题是我想在用户的视频仍在播放时禁用键盘输入。我无法做到这一点。在我当前的代码中,当视频正在播放时,如果用户按下另一个键,则与其关联的视频开始在已播放的视频上播放。

谁能帮我弄清楚如何在视频已经播放时禁用键盘输入?请帮我分析一下逻辑。提前致谢。

import processing.video.*;
import processing.sound.*;
Movie vid1,vid2,vid0;

boolean b1,b2 = false;

void setup() 
{
  size(1920,1080);  
  vid1  = new Movie(this,"vid-01.mp4");
  vid2  = new Movie(this,"fhv-2.mp4");
  vid0 = new Movie (this,"main-vid-0.mp4"); 
  frameRate(30);
  //main.loop();
  //main.play();
  //main.stop();
  //main.loop();
}

void draw() 
{
  background(0);
  
  image(vid0,0);
  vid0.loop();
  vid0.volume(10);
  
  if (b1 == true)
  {
    image(vid1,0);
    if (vid1.time() ==  vid1.duration())
    {
      vid1.stop();
      b1=false;
    }
    else{
      vid0.volume(0);
      //key = 0;
    }
  } 
  
  //vid2
  if (b2 == true)
  {
    image(vid2,0);
    if (vid2.time() ==  vid2.duration())
    {
      vid2.stop();      
      b2=false;
    }
    else{
      vid0.volume(0);
      //key = 0;
    }
  }

}

void keypressed()
{
  if (key == 'a' || key ==  'A')
  {
    //vid0.volume(0);
    vid1.play();  
    b1 = true; 
    }
   
   if (key == 'b'|| key ==  'B'){
     vid2.play();
     b2 = true;
   }
   
   
   
}

void movieEvent(Movie m) 
{
  m.read();
}

解决方法

您还可以使用 time() 对象的 duration()Movie 函数,在允许按下某个键之前检查视频是否尚未启动或已完成。

void draw() {
    background(0);
  
    image(vid0,0);
    vid0.loop();
    vid0.volume(10);

}

void keyPressed() {
    if((vid1.time() == 0.0 || vid1.time() == vid1.duration()) && (vid2.time() == 0.0 || vid2.time() == vid2.duration())){
        if (key == 'a' || key ==  'A'){
             vid0.pause();
             //vid0.volume(0);
             vid1.play();  
        }
   
        if (key == 'b'|| key ==  'B'){
            vid0.pause();
            vid2.play();
        }
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。