Java-Sound每个声音只播放一次,然后将不再播放
编辑:如果我使用equals()比较字符串,它会播放一次声音,然后崩溃。有人知道为什么循环会越界吗 代码更新 编辑2:我试过插入!现在它不再崩溃了,但它仍然只播放一次每个声音,并且在第一次迭代后不会再播放 当按下按钮的长度等于一定量时,我们试图为玩具播放声音。在打印方面,响应与预期一致(至少对于短时间的按钮按下),它将打印出阵列[1]点等于“S”,但是由于某些原因,这不会触发我们的if函数,当阵列[1]等于“S”时,该函数会发出声音。有什么想法吗 出于某种原因,它也不是阅读“L”或长按钮。这让我们发疯了我们已经搞了三个小时了!你们这些聪明人怎么想 来自处理的Java代码:Java-Sound每个声音只播放一次,然后将不再播放,java,arduino,Java,Arduino,编辑:如果我使用equals()比较字符串,它会播放一次声音,然后崩溃。有人知道为什么循环会越界吗 代码更新 编辑2:我试过插入!现在它不再崩溃了,但它仍然只播放一次每个声音,并且在第一次迭代后不会再播放 当按下按钮的长度等于一定量时,我们试图为玩具播放声音。在打印方面,响应与预期一致(至少对于短时间的按钮按下),它将打印出阵列[1]点等于“S”,但是由于某些原因,这不会触发我们的if函数,当阵列[1]等于“S”时,该函数会发出声音。有什么想法吗 出于某种原因,它也不是阅读“L”或长按钮。这让我
import processing.serial.*; //accepts serial input
import ddf.minim.*; //imports minim sound library
Minim minim;
String [] array;
Serial arduinoPort; //reads serial from arduino
AudioPlayer au_player1, au_player2, au_player3; //initializes sound files, au_player(n) (n=number of wav files)
void setup() {
minim = new Minim(this);
au_player1 = minim.loadFile("comply_not.wav");
au_player2 = minim.loadFile("go_away.wav");
String portName = Serial.list()[2];
arduinoPort = new Serial(this, portName, 9600);
}
void draw() {
while (arduinoPort.available () > 0) {
String myString = arduinoPort.readStringUntil('\n');
if ((myString != null)&&(!myString.isEmpty)) {
// println(myString);
printArray(array);
array = split(myString, ",");
if (array[1].equals("S")) {
au_player1.play();
}
else if (array[1].equals("L")) {
au_player2.play();
}
delay(100);
}
}
}
void stop() {
minim.stop();
super.stop();
}
Arduino代码:
基本上,这只是在按下按钮后读取,然后发送到处理,这都是Java的,所以如果你不知道arduino的东西,那也没什么大不了的。我认为这与Java有关
#define BUTTON_PIN 2 // Button
#define LONGPRESS_LEN 25 // Min nr of loops for a long press
#define DELAY 100 // Delay per loop in ms
Serial.print("No");
Serial.print(",");
Serial.print("No");
Serial.print(",");
Serial.println("No");
break;
case EV_SHORTPRESS:
Serial.print(",");
Serial.print("S");
Serial.print(",");
Serial.println("No");
break;
case EV_LONGPRESS:
Serial.print(",");
Serial.print("L");
Serial.print(",");
Serial.println("No");
我想出来了-
由于某些原因,声音需要倒带!!(这对我来说很奇怪,因为它不是vhs哈哈哈,但还行!)
基本上我们加了
soundclip.rewind();
对于每个声音片段,它现在都在工作
谢谢你的帮助 读我的坏消息,在代码中==是正确的,我只是在postoh的标题中写错了,哎哟,等一下,弄乱了equals(),如果我使用equals(),它会播放一次声音,然后崩溃。有人知道为什么循环会越界吗?给我们看看例外情况。在这一点上,一个粗略的猜测是,您试图在数组中存储多个按键,但没有错误消息,您的猜测和我的一样好。