【问题标题】:How to play an MP3 File using Java?如何使用 Java 播放 MP3 文件?
【发布时间】:2012-08-30 20:37:50
【问题描述】:

使用 Applet.AudioClip 我可以播放 .wav 文件,但如果我尝试在 MP3 文件上执行此操作,那么即使没有抛出异常,似乎也不会播放音频。

是否有任何方法可以使用 Java 播放 MP3,无论是使用 Swing、Java FX 还是任何其他 Java 技术?

【问题讨论】:

标签: java audio mp3 javafx-2 javasound


【解决方案1】:
package test;

import java.io.File;

import javax.media.Format;
import javax.media.Manager;
import javax.media.MediaLocator;
import javax.media.Player;
import javax.media.PlugInManager;
import javax.media.format.AudioFormat;

public class AudioTest {
public static void main(String[] args) {
    Format input1 = new AudioFormat(AudioFormat.MPEGLAYER3);
    Format input2 = new AudioFormat(AudioFormat.MPEG);
    Format output = new AudioFormat(AudioFormat.LINEAR);
    PlugInManager.addPlugIn(
        "com.sun.media.codec.audio.mp3.JavaDecoder",
        new Format[]{input1, input2},
        new Format[]{output},
        PlugInManager.CODEC
    );
    try{
        Player player = Manager.createPlayer(new MediaLocator(new File("data/audioFiles/abc.mp3").toURI().toURL()));
        player.start();
    }
    catch(Exception ex){
        ex.printStackTrace();
    }
}
}

希望对你有帮助..

【讨论】:

  • 另见this answer,它结合了 JMF 的 MP3 SPI 和 Java Sound。
  • import javax.media.Format; 给我一个错误说没有这样的包javax.media?我安装了 javafx 2.1.1
  • @AndrewThompson 试用包import javax.media.format.AudioFormat;
  • JavaFX 包名称以javafx 为前缀(您可能会注意到,如果您曾经检查过 Java 文档或 JavaFX 项目的导入......)。上面的代码是纯JMF。
  • @Tapan 我猜你的意思是对提出问题的人的评论。我用JMF SPI播放MP3,代码中不需要导入,放在run-time class-path下即可。
猜你喜欢
  • 1970-01-01
  • 2013-05-28
  • 2011-01-30
  • 2012-04-11
  • 2012-04-11
  • 2015-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多