是什么导致JMF中的数组错误

时间:2018-02-12 22:47:02

标签: java eclipse audio mp3 jmf

在下面的代码中,我想使用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)

有谁知道如何修复它?

0 个答案:

没有答案