0

次のコードで Java Sound を使用しています。

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 が必要です... OK ですが、SO にインストールされているコーデックを使用する方法を探していました。それを行う方法はありますか?

4

1 に答える 1

0

これを使って MP3 を再生しましたが、簡単でした。

于 2010-08-13T03:53:09.833 に答える