2014-03-12 67 views
1

我想播放文件java。我正在使用代碼,但顯示異常無法從輸入文件獲取音頻輸入流。 我的源代碼是:無法從輸入文件獲取音頻輸入流

try { 
     System.out.println("Start"); 
     File f = new File("E:\\malayalam good song\\01_ISHTAMANU.MP3"); 

     AudioInputStream audio = AudioSystem.getAudioInputStream(f); 
     System.out.println("Start"); 
     AudioFormat format = audio.getFormat(); 
     DataLine.Info info = new DataLine.Info(SourceDataLine.class, format); 
     SourceDataLine auline = (SourceDataLine) AudioSystem.getLine(info); 
     auline.open(format); 
     auline.start(); 
     int nBytesRead = 0; 
     byte[] abData = new byte[524288]; 
     while (nBytesRead != -1) { 
      nBytesRead = audio.read(abData, 0, abData.length); 
      if (nBytesRead >= 0) { 
       auline.write(abData, 0, nBytesRead); 
      } 
     } 
    } catch (Exception E) { 
     System.out.println("Exception"+E.getMessage()); 
    } 
+0

你有什麼異常? – npinti

+0

「無法從輸入文件獲取音頻輸入流」。 – user3397667

回答

2

添加mp3plugin.jar classpath中。

http://pscode.org/lib/mp3plugin.jar

+1

這是一個新的例外:「支持無線匹配接口SourceDataLine,支持格式MPEG1L3 44100.0 Hz,每個採樣未知比特,立體聲,未知幀大小,未知幀率,」。 – user3397667

1

如果您在java 7,有新的(JavaFX)班有更易於使用:

import javafx.scene.media.Media; 
import javafx.scene.media.MediaPlayer; 
... 
... 

try { 
     File f = new File("E:\\malayalam good song\\01_ISHTAMANU.MP3"); 
     Media hit = new Media(f.toURI().toString()); 
     MediaPlayer mediaPlayer = new MediaPlayer(hit); 
     mediaPlayer.play(); 
    } catch(Exception ex) { 
     ex.printStackTrace(); 
     System.out.println("Exception: " + ex.getMessage()); 
    } 

如果你不在Java 7,你可以從JavaFXhere

+1

請給出javafx的jar文件。 – user3397667

+0

@ user3397667您可以從http://www.oracle.com/technetwork/java/javafx/downloads/index.html – 2014-03-12 07:20:09

+0

下載jar文件我可以使用jar文件。但不能正常工作。顯示「packge.javafx.scene.media不存在」 – user3397667

相關問題