播放声音和动画

时间:2013-12-14 17:15:45

标签: ios animation audio

我有一个动画,当按下按钮时,它会播放。

我需要同时播放声音。

如果快速连续按下按钮两次,声音将在第二次按下时从头开始播放,但动画只会循环一次,因为声音比动画长度短。

有人有解决方案吗?

一旦动画播放完毕,也许只有让声音按钮再次起作用的方法?

//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);

2 个答案:

答案 0 :(得分:0)

让按钮触发一个动作,同时开始播放声音并开始动画。

如果您希望立即开始播放声音,请在视图控制器的viewDidLoad方法中加载声音播放器,并调用prepareToPlay。这将完成所有准备工作,让您的声音准备好快速播放。

让action方法将按钮设置为enabled = NO,这样用户就无法单击两次。使用包含完成块的动画方法(如animateWithDuration:animations:completion)。在完成块中,再次设置enabled = true。也可以在完成块中再次调用声音的prepareToPlay方法,以便再次播放它。

答案 1 :(得分: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.
    }
  ];
}