2013-07-02 2 views
1

Я пытаюсь создать mp3-плеер с помощью java.I пробовал несколько кодов, и это закончилось слишком большим количеством ошибок. Поэтому, пожалуйста, предоставьте мне подсказки о коде, а также помогите настроить JMF ??Mp3-плеер и JMF

+0

См. [Информация о звуке Java. страница] (http://stackoverflow.com/tags/javasound/info) для получения подробной информации о том, как играть в MP3. –

ответ

1

JMF изначально не поддерживает mp3, поскольку mp3 не является открытым исходным кодом.

Если вы хотите воспроизвести mp3-файл, вы можете сделать это, используя библиотеки jlayer, mp3spi и tritonus.

Если вам нужна дополнительная информация об этой библиотеке, то дайте мне знать.

См. Приведенный ниже код. Когда три библиотеки добавлены в построенный путь, этот код работал для меня. Надеюсь, это вам поможет

String mp3File = "path to mp3 file"; 

public void playMp3(String mp3File) { 
    AudioInputStream din = null; 
    AudioInputStream in = null; 
    try { 
     File file = new File(mp3File); 
     in = AudioSystem.getAudioInputStream(file); 
     AudioFormat baseFormat = in.getFormat(); 
     AudioFormat decodedFormat = new AudioFormat(
       AudioFormat.Encoding.PCM_SIGNED, 
       baseFormat.getSampleRate(), 16, baseFormat.getChannels(), 
       baseFormat.getChannels() * 2, baseFormat.getSampleRate(), 
       false); 
     din = AudioSystem.getAudioInputStream(decodedFormat, in); 
     DataLine.Info info = new DataLine.Info(SourceDataLine.class, decodedFormat); 
     line = (SourceDataLine) AudioSystem.getLine(info); 

     if (line != null) { 
      line.open(decodedFormat); 
      byte[] data = new byte[4096]; 
      // Start 
      line.start(); 

      int nBytesRead; 
      while ((nBytesRead = din.read(data, 0, data.length)) != -1) { 
       line.write(data, 0, nBytesRead); 
       if (flag) { 
        break; 
       } 
      } 
      line.drain(); 
      line.stop(); 
      line.close(); 
      din.close(); 
     } 

    } catch (UnsupportedAudioFileException uafe) { 
     JOptionPane.showMessageDialog(null, uafe.getMessage()); 
     logger.error(uafe); 
    } catch (LineUnavailableException lue) { 
     JOptionPane.showMessageDialog(null, lue.getMessage()); 
     logger.error(lue); 
    } catch (IOException ioe) { 
     JOptionPane.showMessageDialog(null, ioe.getMessage()); 
     logger.error(ioe); 
    } finally { 
     if (din != null) { 
      try { 
       din.close(); 
      } catch (IOException e) { 
      } 
     } 
     try { 
      in.close(); 
     } catch (IOException ex) { 
      logger.error(ex); 
     } 
    } 
} 
+0

Если возможно, предоставьте мне дополнительную информацию .. –

+0

* «JMF изначально не поддерживает mp3 ..» * Это просто неправильно. Он поставляется со стандартным MP3 SPI, как описано в информации о Java Sound. страница, связанная с моим 1-м комментарием (см. выше). –

+0

@ Андрю Томпсон, работая над проектом по раздельному mp3-файлу, я нашел это на сайте oracles. Поэтому я не вижу здесь ничего плохого. U можно проверить здесь http://www.oracle.com/technetwork/java/javase/formats-138492.html и здесь также http://docs.oracle.com/javase/7/docs/webnotes/tsg/TSG -Desktop/html/sound.html. Для воспроизведения mp3 в JMF вам необходимо установить mp3-плагин отдельно. – pundit

Смежные вопросы