Ciao ho questo codice quiRiproduzione audio a Raspberry Pi con 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();
}
}
}
per riprodurre un suono sul lampone. Ma quando lo eseguo, non produce alcun output.
L'ho provato su entrambi i sistemi Windows e Linux dove funziona.
Il programma tuttavia rileva il file poiché dorme per l'intera durata dell'audio e non mi fornisce alcuna eccezione di runtime.
Inoltre, non può essere l'altoparlante che causa il problema perché posso riprodurre il suono con aplay test.wav
e mi dà un'uscita. Volevo usare la libreria JavaFX ma sembra essere stata rimossa dalla versione java ridotta di resbian.
Hai provato a eseguire questo su Windows? Lo stai rendendo specifico su raspberry-pi, ma sarebbe un'aringa rossa se il codice non funziona da qualche altra parte. – Gimby
Sì, l'ho provato su Windows e Linux e funziona su entrambi. Penso che java abbia qualche tipo di problema a notare l'uscita audio –
Dovresti modificare la tua domanda e aggiungere il fatto che il codice è testato e funziona su Windows e Linux; è un indizio piuttosto importante che potrebbe effettivamente essere specifico per i lamponi. Quando si esegue java -version sul PI, che cosa produce? – Gimby