2013-12-14 5 views
0

버튼을 누르면 재생되는 애니메이션이 있습니다.사운드 및 애니메이션 재생

동시에 사운드를 재생해야합니다.

버튼을 빠르게 연속해서 두 번 누르면 사운드는 두 번째 누를 때 처음부터 재생되지만 사운드는 애니메이션 길이보다 짧기 때문에 애니메이션은 한 번만 순환합니다.

누구에게도 해결책이 있습니까?

애니메이션 재생이 끝나면 사운드 버튼을 다시 사용할 수 있을까요?

//Panel 1 Sound Button Action. 
- (IBAction)playSound:(id)sender { 
    AudioServicesPlaySystemSound(SoundID); 


//Panel 1 Sound 
    NSURL *buttonURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"panel01" ofType:@"wav"]]; 
    AudioServicesCreateSystemSoundID((__bridge CFURLRef)buttonURL, &SoundID); 

답변

0

버튼이 소리 재생을 시작하고 애니메이션을 시작하는 단일 동작을 트리거합니다.

사운드를 즉시 재생하려면 사운드 컨트롤러를 view 컨트롤러의 viewDidLoad 메서드에로드하고 prepareToPlay를 호출하십시오. 그러면 모든 준비 작업을 수행하여 사운드를 신속하게 재생할 수 있습니다.

버튼을 활성화 = 아니오로 설정하여 사용자가 두 번 클릭하지 못하도록합니다. 완료 블록을 포함하는 애니메이션 메서드 (예 : animateWithDuration : animations : completion)를 사용합니다. 완료 블록에서 enabled = true를 다시 설정하십시오. 또한 완료 블록에서 사운드의 prepareToPlay 메서드를 다시 호출하여 다시 재생할 준비를하십시오.

+0

이 답변에 많은 감사를드립니다. 위 답변에 대한 코드 예제를 제공해 주시겠습니까? 나는 그것이 내가 필요로하는 정확하게 것이다라고 생각한다! 그것은 쓰여질 때 받아 들일 다만 많게이다. 고마워 던컨 –

+0

그래, 내가 원할 때 재생되는 사운드는 더 이상 문제가되지 않는다. 애니메이션을 끝내고 버튼을 다시 누를 때까지 사운드가 다시 재생되지 않도록해야한다. 버튼 사용 코드에 익숙하다. 사실이 응용 프로그램 내에서 다른 용도로 사용했습니다. 완성 코드 블록을 이해하지 못했습니다. 그 예를 들어 주시겠습니까? 감사합니다. –

+0

애니메이션 코드를 게시하면 수정 방법에 대한 몇 가지 정보를 알려 드리겠습니다. –

0

의견에 코드를 게시 할 수 없으므로 다른 답변을 시작하겠습니다. 버튼 동작 방법은 다음과 같습니다.

-(void) buttonPressed: (UIButton *) button; 
{ 
    //Play the sound here. 
    [UIView animateWithDuration: .5 
    animations: 
    ^{ 
     button.enabled = NO; //Disable the button while the animation is running 
     //Your animation code goes here 
    } 
    completion: 
    ^{ 
     button.enabled = YES; //Re-enable the button once the animation is finished. 
    } 
    ]; 
}