2014-04-21 1 views
1

나는 평균적으로 매 초마다 일련의 Clip (clip.start())을 재생하는 프로그램을 만들고 있습니다.Clip 클래스는 '많이 사용하는'용도로 적합합니까?

의미 클립이 시작되고 두 번째 클립이 중지되고 다른 클립이 시작되며 약 10 개의 클립이 계속됩니다.

결과가 '유동적'이 아니므로 일부 클립이 시작되지 않거나 들리지 않습니다.

내 질문 : 이런 종류의 클립에 적합한 클래스입니까? 또는 클립이 멈추고 아주 자주 시작되는 것을 처리하지 않아야합니까?

Clip이 적절하지 않은 경우이 용도로 제안 할 수있는 대체 클래스 또는 라이브러리가 있습니까? 또는 클립을 사용하여 작업하는 방법에 대한 몇 가지 지침을 설명 했으므로 유동적으로 작업 할 수 있습니까? (어쩌면 스레딩이나 무언가에 관한).

답변

0

Java에서 오디오에 대한 경험이별로 없지만 클립으로 얻은 경험이 부족합니다. 나는 어떤 이유로 그것이 받아 들일 수없는 클립을 다시 시작하는 데 최대 30 초가 걸린다는 것을 발견했다. (이 문제와 관련하여 명백하게 고쳐진 오래된 버그를 찾았지 만, 내가 본 당시에는 아마도 새로운 버그 였을 것이다. 그것으로). 전체 사운드를 담는 버퍼가있는 SourceDataLine이 나에게 더 효과적입니다.

그러나 저는 TinySound을 제안합니다. 이는 간단하게 작동하는 추상화입니다.

//initialize TinySound 
    TinySound.init(); 
    //load a sound and music 
    //note: you can also load with Files, URLs and InputStreams 
    Music song = TinySound.loadMusic("song.wav"); 
    Sound coin = TinySound.loadSound("coin.wav"); 
    //start playing the music on loop 
    song.play(true); 
    //play the sound a few times in a loop 
    for (int i = 0; i < 20; i++) { 
     coin.play(); 
     try { 
      Thread.sleep(1000); 
     } catch (InterruptedException e) {} 
    } 
    //be sure to shutdown TinySound when done 
    TinySound.shutdown(); 
: 여기

는 자신의 페이지에서 예제