我有这段代码:
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("1.mp3").toURI().toURL()));
player.realize();
player.start();
}
catch(Exception ex){
ex.printStackTrace();
}
}
}
我正在尝试播放mp3文件,mp3plugin被添加到项目lib以及jmf jar中。 控制台上没有错误,但听不到声音。
文件没有播放。 .wav文件播放正常。
任何想法?
答案 0 :(得分:2)
JMF是一个糟糕的选择。该项目很久以前就被废弃了。 我在这里回答了类似的问题:
Java - Error when trying to use mp3plugin for playing an mp3 file
它可能对您有用 - 我正在使用Java Sound
答案 1 :(得分:0)
以下是我播放音乐所需的全部内容。
public static void main(String args[]) throws NoPlayerException, CannotRealizeException, IOException {
MediaLocator ml = new MediaLocator((new File("roar_of_future.mp3").toURL()));
Player player = Manager.createRealizedPlayer(ml);
player.start();
}
因此,请确保mp3plugin.jar在类路径中,并且您的javasdk是Java 8(32位)或7(32位),因为JMF无法在Java 9及更高版本上运行。