我有一个动画,当按下按钮时,它会播放。
我需要同时播放声音。
如果快速连续按下按钮两次,声音将在第二次按下时从头开始播放,但动画只会循环一次,因为声音比动画长度短。
有人有解决方案吗?
一旦动画播放完毕,也许只有让声音按钮再次起作用的方法?
//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 :(得分: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.
}
];
}