【发布时间】:2016-01-10 21:31:39
【问题描述】:
多年来,我一直试图弄清楚这一点。 Stop() 函数在 if 语句中不起作用(歌曲只是在彼此之上播放,而不是暂停和倒带)。如果我将 Stop() 函数调用放在 if 语句之外,它似乎可以正常工作(即根本没有播放任何文件,这是预期的行为)想知道是否有人可以解释一下?
-------------代码示例-------------------------
import processing.serial.*;
import ddf.minim.*;
String id;
Card Card1 = new Card();
Minim minim;//audio context;
AudioPlayer Backgroundplayer;
public class Card{ // CARD OBJECT so can set up each card.
String id;
String FileToPlay;
boolean Playing = false;
AudioPlayer player;
public Card(){}
public Card(String ID, String FILETOPLAY){
id = ID;
FileToPlay = FILETOPLAY;
}
void Load(){
player = minim.loadFile(FileToPlay);
}
void Play(){
if(Playing == false){
player.play();
Playing = true;
println("PLaying");
}else if(Playing == true){
Playing = false;
Stop();
}
}
void Stop(){
println("Stopping");
player.pause();
player.rewind();
}
}
void setup() {
size(400, 300);
}
void draw() {
}
void mouseClicked() {
Card1.id = id;
Card1.FileToPlay = "drumploop.wav";
Card1.Load();
Card1.Play();
}
期望的结果是用每张卡播放不同的声音。然而,当卡片被扫描时,如果卡片已经在播放剪辑,当它再次扫描时,它应该停止播放分配的剪辑,而其余的其他剪辑仍在播放。
【问题讨论】:
-
您认为 if 语句中的
else部分何时会被输入? -
当bool播放为真时将进入else部分,即当声音已经播放时,所以下次我播放该声音时,它会进入else,反正我是这么想的
标签: java processing minim