在java中运行mp3和.aac vlc音频

时间:2017-03-21 19:58:56

标签: java audio netbeans-8

我想从java运行音频文件,我在SO中读取了很多代码,但是也许无法运行我的文件! 似乎我提到错误的路径或使用错误的lib。 请帮助我在下面的代码中运行mp3或VLC .aac格式文件

的错误
  public void playSound() {
  try {
      AudioInputStream audioInputStream =  AudioSystem.getAudioInputStream(new File("D:/clinic/clinic/mysound.mp3").getAbsoluteFile());
     Clip clip = AudioSystem.getClip();
    clip.open(audioInputStream);
    clip.start();
 } catch(Exception ex) {
    System.out.println("Error with playing sound.");
    ex.printStackTrace();
}
}

3 个答案:

答案 0 :(得分:2)

如果使用this.getClass.getResource()方法而不是File(file)方法,那么它可能会起作用。请记住,音频所在的文件必须与运行它的类位于同一个包中。如果这不起作用,那么尝试使用.wav文件(您可以使用.mp3到.wav转换器)。

public void run() {
    try {
        AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(this.getClass().getResource("mysound.mp3"));
        Clip clip = AudioSystem.getClip();
        clip.open(audioInputStream);
        clip.start();
        clip.loop(Clip.LOOP_CONTINUOUSLY);
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}

我希望这会有所帮助。

答案 1 :(得分:2)

AudioSystem不支持.mp3文件。 (仅限AIFC,AIFF,AU,SND和WAVE)

如果您想使用.mp3文件,请尝试使用MediaPlayer

// Fake init of JFX Toolkit (Just do this once before you use MediaPlayer) 
// Not needed in a JavaFX application as Application.launch() inits the toolkit 
new JFXPanel();  


Media media = new Media(new File("yourFile.mp3").toURI().toString());   
MediaPlayer player = new MediaPlayer(media);    
player.play();  

答案 2 :(得分:0)

如果您不想拥有巨大的音频文件,那么本机支持的音频格式就是非常有用的。 我结束了使用WAV文件,因为它是我可以开始工作的,但它一直困扰着我。

使用jaad比我想象的要复杂,但我现在就开始工作了:Java play AAC encoded audio