2013-09-22 2 views
3

Le message sur la coque est:Erreur lecture d'un fichier audio à partir de Java via PulseAudio sur Ubuntu

Exception in thread "main" java.lang.IllegalArgumentException: Invalid format 
    at org.classpath.icedtea.pulseaudio.PulseAudioDataLine.createStream(PulseAudioDataLine.java:142) 
    at org.classpath.icedtea.pulseaudio.PulseAudioDataLine.open(PulseAudioDataLine.java:99) 
    at org.classpath.icedtea.pulseaudio.PulseAudioDataLine.open(PulseAudioDataLine.java:283) 
    at org.classpath.icedtea.pulseaudio.PulseAudioClip.open(PulseAudioClip.java:402) 
    at org.classpath.icedtea.pulseaudio.PulseAudioClip.open(PulseAudioClip.java:453) 
    at reprod.ReproducirFichero(reprod.java:16) 
    at reprod.main(reprod.java:44) 

je tente de télécharger de nouveaux pilotes pour l'audio, je tente de réinstaller OpenJDK 7 et openJRE 7 et aussi j'essayer de installer java 7.

J'ai prouvé mon code dans un autre ordinateur et cela fonctionne, la carte de bureau que j'utilise est un intel d525mw, le format audio que j'essaye de jouer est .wav.La version de Linux qui J'utilise est Ubuntu 12.04.3.Please j'ai besoin d'aide.Merci

voici la fête de mon co de, et je tente de lire un format audio .wav

import javax.sound.sampled.*; 

public class reprod { 

public static void play(){ 
    try { 
     Clip cl = AudioSystem.getClip(); 

     File f = new File("/home/usr/Desktop/d.wav"); 
     AudioInputStream ais = AudioSystem.getAudioInputStream(f); 

     cl.open(ais); 

     cl.start(); 
     System.out.println("playing..."); 

     while (cl.isRunning()) 
      Thread.sleep(4000); 


     cl.close(); 

la version de linux que j'utilise Ubuntu est 12.04.3

Répondre

0

Le message d'erreur indique que le format de fichier d'entrée est erroné en quelque sorte.

Si vous nous avez donné plus d'informations (format de fichier, peut-être où vous l'avez, code que vous utilisez pour ouvrir le fichier et comment vous avez configuré les pilotes audio), nous pourrions vous aider.

Voir cette question pour un code que vous pouvez essayer: How to play .wav files with java

+1

le format audio est .wav. J'ai prouvé dans un autre ordinateur et cela fonctionne. Je ne sais pas comment je peux configurer les pilotes audio. – blackhawk87

4

J'ai eu le même problème et trouvé que ce code fonctionne:

File soundFile = new File("/home/usr/Desktop/d.wav"); 
AudioInputStream soundIn = AudioSystem.getAudioInputStream(soundFile); 
AudioFormat format = soundIn.getFormat(); 
DataLine.Info info = new DataLine.Info(Clip.class, format); 
Clip clip = (Clip)AudioSystem.getLine(info); 
clip.open(soundIn); 
clip.start(); 
while(clip.isRunning()) 
{ 
    Thread.yield(); 
} 

La clé est dans soundIn.getFormat(). Pour citer le docs:

Obtient le format audio des données audio dans ce flux d'entrée audio.

Source: http://ubuntuforums.org/showthread.php?t=1469572

5

je résolu le problème en passant simplement le paramètre null dans AudioSystem.getClip().

Je ne sais pas pourquoi cette exception s'est produite, j'ai exécuté ce projet avant sur Windows, et cela a fonctionné ... Après sur Linux et ici, cela n'a pas fonctionné.

Questions connexes