2014-11-02 2 views
0

내 게임에서 sfx 및 기타 사운드 요소를 추가하려고합니다. 나는 AudioClip을 모든 것에 사용했다 (BGM, sfx 등). 이제 sfx가 이미 루프에 있는지 확인해야합니다. 캐릭터가 포털에 가까워지면 sfx가 루프에서 재생되어야한다는 것을 알리고 싶습니다. 거리가 멀면 멈춰야합니다. 나는 .isRunning() 함수가 있다는 것을 읽었지 만, 내가보기에는 Clip에서만 사용할 수있다. 여기 내 코드의 일부입니다.Java의 AudioClip과 Clip의 차이점은 무엇입니까?

AudioClip과 Clip의 차이점은 무엇입니까?

if (hero.getHeroX() > (MAZECOL - 5) * 30 && hero.getHeroY() > (MAZEROW - 4) * 30) 
    if (portalSFX is not in loop) 
     portalSFX.loop(); 
else 
    portalSFX.stop(); 
+1

두 가지 다른 API처럼 보입니다. 'AudioClip'은 java.applet에 있고, Clip은 javax.sound.sampled에 있습니다. –

+0

거기에 장단점이 있습니까? .isRunning() 함수를 사용하면 AudioClip 대신 Clip으로 모든 사운드를 변경해야합니까? 아니면 다른 방법이 있습니까? – Kokufuu

답변

1

AudioClip은 애플릿 API에 속합니다. 실제로 사용하는 것은 의미가 없습니다. 그것은 오래되었으며 제한된 기능을 제공합니다.

Clipjavax.sound.sampled에 속합니다. AudioSystem에서 얻을 수 있으며 here 공식 자습서가 있습니다.

+0

답변 해 주셔서 감사합니다. AudioClip이 루프에 있거나 이미 재생 중인지 확인하는 방법이 있습니까? 하지만 어쨌든 클립으로 바꾸려고 노력할 것입니다. – Kokufuu

+0

* "AudioClip이 루프에 있거나 이미 재생 중인지 확인하는 방법이 있습니까?"* 아니요, 없습니다. 여기서 클립으로 전환하는 것이 올바른 결정입니다. – Radiodef