Баночка со сжатой музыкой с Java? - PullRequest
2 голосов
/ 09 февраля 2011

Я пытался добавить музыку в приложение, которое сделал.Сначала я попробовал с .wav файлами, хотя они стали настолько большими, что приложение стало слишком большим для загрузки в любом месте.

Поэтому я изменил файлы на .mp3, попробовал JMF и JLayer, хотя обаони не будут работать с работающими банками (даже если они отлично работают, когда я их не экспортировал).

Таким образом, кто-нибудь получил какие-либо советы о том, как играть сжатую музыку с работающей банкой?

Вот код для JLayer, при экспорте он перестает работать на f = new File(u.toURI()) без каких-либо исключений ...

try {

    URL u = cl.getResource("New Beginnings.mp3");
    f = new File(u.toURI());

} catch (URISyntaxException e1) {
    e1.printStackTrace();
}

try {

    FileInputStream fis = new FileInputStream(f);
    p = new Player(fis);
    p.play();

} catch (Exception e) {
    System.out.println(e);
}

Редактировать: Исправлено с изменением кода выше на:

try {

      InputStream fis = ClassLoader.getSystemClassLoader().getResourceAsStream(temp+".mp3");
      p = new Player(fis);
      p.play();

   } catch (Exception e) {
      System.out.println(e);
   }

1 Ответ

1 голос
/ 09 февраля 2011

Где именно вы разместили звуковой файл?

Вам следует создать новый пакет внутри вашего проекта и поместить туда ресурсы, а затем прочитать файл, отправив полный путь:

ех. создайте новый пакет под названием звуки, затем:

  InputStream fis = ClassLoader.getSystemClassLoader().getResourceAsStream("/sounds/"+temp+".mp3");
  p = new Player(fis);
  p.play();

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

...