嗨,我这里有这个代码播放音频上树莓派与Java
import java.io.File;
import java.io.IOException;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
public class Playmusic implements Runnable {
public static void main(String[] args){
Thread t = new Thread(new Playmusic());
t.start();
}
@Override
public void run() {
AudioInputStream audioIn;
try {
audioIn = AudioSystem.getAudioInputStream(new File("test.wav"));
Clip clip;
clip = AudioSystem.getClip();
clip.open(audioIn);
clip.start();
Thread.sleep(clip.getMicrosecondLength()/1000);
} catch (UnsupportedAudioFileException | IOException | LineUnavailableException | InterruptedException e1) {
e1.printStackTrace();
}
}
}
播放声音的树莓。但是当我运行它时,它不会产生任何输出。
我已经在Windows和Linux系统上测试过它。
该程序确实会注意到该文件,因为它会在整个声音期间休眠,并且不会给我任何运行时异常。
它也不能是导致问题的扬声器,因为我可以用aplay test.wav
播放声音,它给了我一个输出。我想使用JavaFX库,但它似乎被删除的java版本的resbian删除。
你试过在Windows上运行这个吗?你正在制作关于树莓派的具体内容,但如果代码在其他地方无法使用,那将会是一个红鲱鱼。 – Gimby
是的,我已经在Windows和Linux上尝试过它,它在两者上都能正常工作。我认为java有注意音频输出的某种问题 –
您应该编辑您的问题并添加代码已经过测试并在Windows和Linux上运行的事实;它是一个非常重要的线索,它确实可能是树莓特定的。当您在PI上运行java -version时,该输出是什么? – Gimby