2011-02-09 2 views
2

나는 내가 만든 응용 프로그램에 음악을 추가하려고 시도했습니다. 처음에는 .wav 개의 파일로 시도했지만 너무 커서 응용 프로그램이 너무 커서 어디서나 업로드 할 수 없었습니다.자바와 함께 압축 된 음악이 포함 된 항아리?

그래서 파일을 .mp3으로 변경했는데 JMFJLayer을 시도했지만 모두 내 보낸 적이없는 경우에도 제대로 작동하더라도 실행 가능한 jar에서는 작동하지 않습니다.

누구나 실행 가능한 항아리로 압축 된 음악을 재생하는 방법에 대한 조언을 얻었습니까? 여기

, 그것은 예외를 던지는없이 f = new File(u.toURI())에서 작동을 멈 춥니 다 내보낼 때 ... JLayer에 대한 코드의

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

:에 위의 코드를 변경하여 고정 당신은 정확하게 사운드 파일을 배치합니까?

는 그런 다음 전체 경로를 전송하여 파일을 읽고, 프로젝트 내부에 새 패키지를 만들고 거기에 자원을 배치해야합니다 :

전합니다. 다음, 소리라는 새로운 패키지를 만들 :

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

솔직히 말해서, 나는 소리와 그것을 시도하지 못했지만,이 문제는 이미지를 사용할 때 나에게 일어났다. 나는 그들을 패키지에 넣었고 모든 것이 잘 작동했다.

+0

프로젝트 내에 새 패키지를 만들 필요가 없으며 단지 src 내에 배치하면된다. 언급 한 바와 같이 코드를 변경했을 때 고정되었으므로 항아리에 새 파일을 만드는 것이 허용되지 않는다는 사실을 잊어 버렸습니다. : o – Skarion

+0

@ 스카리 온 mp3 파일이 항아리 밖에 있다면 어떻게 재생합니까 ?? 내 응용 프로그램은 일종의 음악 플레이어입니다. – jeevs

+0

@Skarion jFileOpener 또는 무엇이 불려도 URL을 가져 와서 플레이어에게 보냅니다. – Mazyod