使用millis();而不是延迟();处理不同的延迟

时间:2014-04-28 10:49:25

标签: audio delay processing milliseconds

我试图在开始时有两个不同的延迟,并且在重复项目的每个声音之间有相同的延迟,这里没有停止时间。我尝试使用延迟,但它似乎只是添加两个延迟而不是分开它们,我被告知使用millis();功能,但我不知道如何实现这个?任何帮助都会很棒!

import ddf.minim.*;
import ddf.minim.signals.*;
import ddf.minim.analysis.*;
import ddf.minim.effects.*;



import ddf.minim.*;

Minim minim;
AudioPlayer player;
AudioPlayer player2;

void setup()
{
  size(512, 200, P3D);

   minim = new Minim(this);

  player = minim.loadFile("clapping.mp3");
  player2 = minim.loadFile("bell.mp3");

}

void draw()
{
  background(0);
  stroke(255);

 player1delay();
 player2delay();

}

void delayatstart(){
  millis(4000);
}

void player1delay(){

  delayatstart();
  player.play();
  player.rewind();

}

void delayatstart2(){
 millis(10000); 
}

void player2delay(){

  delayatstart2();
  player2.play();
  player2.rewind();

}

以上是我尝试使用的代码,我用millis替换了我的延迟,并查找了论坛,但无法找到符合我所寻找的代码!

1 个答案:

答案 0 :(得分:2)

首先,你错误地使用了millis()方法。 millis()方法不带任何参数,所以我不知道你认为millis(10000)会做什么。看一下参考文献:http://www.processing.org/reference/millis_.html

millis()函数只返回自程序启动以来的毫秒数。您可以通过将其与某个阈值进行比较来使用它来创建延迟。此示例程序仅在经过5秒后绘制一个圆圈:

void draw(){

   background(0);

   if(millis() > 5000){
      ellipse(10, 10, 50, 50);
   }
}