2013-02-07 3 views
1

음원 생성기가 언제 멈추는 지 알고 싶습니다.음원 생성기 재생이 중단 된시기를 알려주는 방법

dtmf 톤을 50ms 동안 재생 한 다음 50 번을 기다려 다음 톤을 재생하고 싶습니다. 이 코드를 사용하고 싶습니다.

private void playtones() { 
    new Thread(new Runnable() { 
     public void run() { 
      for(int i=0 ; i<=19 ; i++){ 
       dtmftone.startTone(savetone.get(i) , 50); 
       try { 
        Thread.sleep(50); 
       } catch (InterruptedException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
      } 
      } 

     } 
    ).start(); 

} 

톤 재생이 중지되기 전에 절전 모드가 시작됩니다. 어떻게 음색이 멈췄는지 확인할 수 있습니까? 또는 더 좋은 방법이 있습니까?

도움을 얻으려면 Thx.

답변

1

Thread.sleep() 대신 ToneGenerator의 wait(long millis) 메서드를 사용해야합니다.
주의는 소리를 기다리지 않는 방법은 계정에 경고음의 기간을 위해, 따라서 당신이 중지합니다 :

int BEEP_DURATION = 50; 
int WAITING_DURATION = 50; 

... 

for (int i = 0; i <= 19; i++) { 
    dtmftone.startTone(savetone.get(i), BEEP_DURATION); 
    synchronized(dtmftone) { 
     dtmftone.wait(BEEP_DURATION + WAITING_DURATION); 
    } 
... 

그리고 난 당신이 두 개의 경고음 사이에 50ms가 기다릴 것인지 확실하지 않다 . 원하지 않으면 '+ WAITING_DURATION'을 삭제하십시오.