2013-09-22 35 views
3

外殼上播放音頻文件的信息是:錯誤從Java通過的PulseAudio在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) 

我嘗試下載音頻新的驅動程序,我嘗試重新安裝的OpenJDK 7和openJRE 7,也是我嘗試安裝Java 7.

我已經證明我的代碼在另一臺計算機,它的工作原理,我使用的臺式機主板是英特爾d525mw,我試圖播放的音頻格式是.wav。我使用的是Ubuntu 12.04.3.Please需要幫助。謝謝

這裏是我的公司黨德,我嘗試播放.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(); 

Linux版本,我用的是Ubuntu的12.04.3

回答

0

該錯誤消息說,輸入文件格式錯誤莫名其妙。

如果您向我們提供了更多信息(文件格式,可能在哪裏獲得它,用於打開文件的代碼以及如何配置音頻驅動程序),我們可能會提供幫助。

看到這個問題的一些代碼,你可以嘗試:How to play .wav files with java

+1

音頻格式爲.wav。我已經證明在其他電腦,它的作品。我不知道我不能配置音頻驅動程序。 – blackhawk87

4

我有同樣的問題,並發現此代碼工作:

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(); 
} 

的關鍵是soundIn.getFormat()。引用docs

獲取此音頻輸入流中聲音數據的音頻格式。

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

5

我只需null傳遞參數到AudioSystem.getClip()解決了這個問題。

我不知道爲什麼會發生這種異常,我之前在Windows上運行此項目,並且它工作...在Linux和這裏後,它不起作用。