Java 如何让声音在处理过程中播放一次?

Java 如何让声音在处理过程中播放一次?,java,audio,arduino,processing,Java,Audio,Arduino,Processing,我得到了这个代码,但我希望声音一直播放,只要信号“A”给出。现在它开始不断播放,这导致了一种奇怪的静态噪音。我怎样才能让它稳定地播放呢?您在每次运行draw时都会创建一个新的声音文件。因此file.isplay()将始终返回false。如果尚未创建新的声音文件,请仅创建该文件。最简单的解决方案可能是移动文件=新的声音文件(这是“Promise.mp3”)进入设置 或者您检查或记住是否已加载该文件。如果有点断开连接,我很抱歉,但我建议使用minim或其他声音库,而不是处理该声音库,因为它会在导出时

我得到了这个代码,但我希望声音一直播放,只要信号“A”给出。现在它开始不断播放,这导致了一种奇怪的静态噪音。我怎样才能让它稳定地播放呢?

您在每次运行
draw
时都会创建一个新的
声音文件。因此
file.isplay()
将始终返回
false
。如果尚未创建新的
声音文件,请仅创建该文件。最简单的解决方案可能是移动
文件=新的声音文件(这是“Promise.mp3”)进入
设置


或者您检查或记住是否已加载该文件。

如果有点断开连接,我很抱歉,但我建议使用minim或其他声音库,而不是处理该声音库,因为它会在导出时导致很多问题(至少对我来说一直如此)。

如果我使用if使其再次暂停?我该怎么做?因为它一直在暂停?你想什么时候暂停?现在你甚至不能正确地播放它,因为你会立即加载并重新播放它,那么我想我必须解决它!非常感谢。
import processing.serial.*;
import processing.sound.*;

SoundFile file;
Serial myPort;  // Create object from Serial class
String val;     // Data received from the serial port
//String antwoord = "A";
void setup()
{
  size(300,300);
  // I know that the first port in the serial list on my mac
  // is Serial.list()[0].
  // On Windows machines, this generally opens COM1.
  // Open whatever port is the one you're using.
  String portName = Serial.list()[0]; //change the 0 to a 1 or 2 etc. to match your port
  myPort = new Serial(this, portName, 9600);
}

void draw()
{
  if ( myPort.available() > 0) 
  {  // If data is available,
  val = trim( myPort.readStringUntil(ENTER) );
       // read it and store it in val
  } 
//println(val); //print it out in the console
file = new SoundFile(this,"Promise.mp3");

if ("A".equals(val) == true && file.isPlaying() == false) {
 

file.play();
file.amp(0.2);}

else{
 ellipse(40,40,40,40);
}
}