У меня есть некоторые UIImageViews (Животные), и при прикосновении к ним начинает играть определенная звуковая петля.
Но если пользователь дважды или больше касается одного и того же просмотра, соответствующая звуковая петля начинается снова и снова с перекрытием. Я хочу, чтобы тронутый звук воспроизводился один раз до конца, а затем пользователь мог запустить в следующий раз. Продолжительность звуковой петли составляет ок. 3 сек. Я попробовал что-то с «sleep (3); но он останавливает прогу перед воспроизведением звука ..
Но если пользователь касается другого вида, два разных звука могут перекрываться.
#pragma mark -
-(void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
{
//Soundfile names in array arrAnimalde
arrAnimalde = [NSArray arrayWithObjects:@"Hund" ,@"Schwein" ,@"Ferkel", nil];
// here are some Views and their triggers
if([touch view] == img_hund){
trigAnimal = 0;
}
if([touch view] == img_schwein){
trigAnimal = 1;
}
if([touch view] == img_ferkel){
trigAnimal = 2;
}
AudioServicesCreateSystemSoundID ((CFURLRef)[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource: [arrAnimalde objectAtIndex: trigAnimal]
ofType: @"wav"]], &soundFileObject);
AudioServicesPlaySystemSound (self.soundFileObject);
//if the trigger is the same as before play the sound only once and completely
}
}
Пожалуйста, напишите также альтернативные решения - возможно, с возможностью запуска и удержания звука в каждом операторе if.
Thanxx