在下面的代码中,我想使用JMF库播放mp3音乐文件。我已下载mp3.plugIn并将其添加到我的项目中。
package mediaaa;
import java.io.File;
import java.io.IOException;
import javax.media.*;
import javax.media.format.AudioFormat;
import javax.media.pim.PlugInManager;
public class Mediaaa {
public static void main(String[] args) {
File file = new File("C:\\Users\\Jovan\\Desktop\\music.mp3");
try {
Format inputMP3 = new AudioFormat(AudioFormat.MPEGLAYER3);
Format inputMPEG = new AudioFormat(AudioFormat.MPEG);
Format output = new AudioFormat(AudioFormat.LINEAR);
PlugInManager.addPlugIn("com.sun.media.codec.audio.mp3.JavaDecoder", new Format[] { inputMP3, inputMPEG },
new Format[] { output }, PlugInManager.CODEC);
Player player = Manager.createRealizedPlayer(file.toURI().toURL());
player.start(); // Without this code works but there is no sound
} catch (NoPlayerException | IOException | CannotRealizeException e) {
e.printStackTrace();
}
}
}
运行代码时出现此错误:
java.lang.ArrayIndexOutOfBoundsException: -2
at codecLib.mp3.i.a(Unknown Source)
at codecLib.mp3.i.char(Unknown Source)
at codecLib.mp3.Decoder.decode(Unknown Source)
at com.sun.media.codec.audio.mp3.JavaDecoder.process (JavaDecoder.java:323)
at com.sun.media.BasicFilterModule.process(BasicFilterModule.java:322)
at com.sun.media.BasicModule.connectorPushed(BasicModule.java:69)
at com.sun.media.BasicOutputConnector.writeReport (BasicOutputConnector.java:120)
at com.sun.media.SourceThread.process(BasicSourceModule.java:729)
at com.sun.media.util.LoopThread.run(LoopThread.java:135)
有谁知道如何修复它?