Есть ли способ заставить JavaSound использовать кодеки, установленные на вашем SO? - PullRequest
0 голосов
/ 27 июня 2010

Я использую Java-звук со следующим кодом:

public static void main(String[] args) throws Exception
{
    JFrame frame = new JFrame();
    frame.setSize(200,200);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
    JFileChooser fc = new JFileChooser();
    fc.showOpenDialog(null);
    File f = fc.getSelectedFile();
    AudioInputStream ais = AudioSystem.getAudioInputStream(f);
    AudioFormat format = ais.getFormat();
    AudioFormat decodedFormat = new AudioFormat(
                AudioFormat.Encoding.PCM_SIGNED,  // Encoding to use
                    format.getSampleRate(),           // sample rate (same as base format)
                    16,               // sample size in bits (thx to Javazoom)
                    format.getChannels(),             // # of Channels
                    format.getChannels()*2,           // Frame Size
                    format.getSampleRate(),           // Frame Rate
                    false                 // Big Endian
            );
    SourceDataLine line = AudioSystem.getSourceDataLine(decodedFormat);
    AudioInputStream dais = AudioSystem.getAudioInputStream(decodedFormat, ais);
    line.open(decodedFormat);
    line.start();
    byte[] b = new byte[1024];
    int i=0;
    while(true)
    {
        i = dais.read(b, 0, b.length);
        if(i == -1)
            break;
        line.write(b, 0, i);
    }
    line.drain();
    line.stop();
    line.close();
    ais.close();
    dais.close();


}

Но для воспроизведения mp3 требуется наличие SPI на моем пути к классам ... все в порядке, хотя я искал способ использовать кодеки, установленные в SO. Есть ли способ сделать это?

1 Ответ

0 голосов
/ 13 августа 2010
...