2010-06-27 35 views
0

J'utilise son java avec le code suivant:Existe-t-il un moyen de faire JavaSound pour utiliser les codecs installés sur votre SO?

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(); 


} 

Mais pour jouer mp3, tihs exige que je SPI sur mon chemin de classe ... son ok, barbante que je cherchais un moyen d'utiliser la codecs installés dans le SO. Y a-t-il un moyen de faire cela?

Répondre

0

I have used this to play MP3s et c'était simple.

+0

Je vois ... mais vous n'utilisez pas le codec de SO. Vous utilisez un SPI dans votre classpath comme je l'ai fait. J'essayais de le faire fonctionner avec le codec de SO déjà installé – fredcrs