Я пытаюсь сделать очень точно синхронизированный звук.
Я использовал этот код для создания таймера:
timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0));
dispatch_source_set_timer(timer, DISPATCH_TIME_NOW, 1ull*500000000, 5000ull);
dispatch_source_set_event_handler(timer, ^{[myAVAudioPlayer play];});
dispatch_resume(timer);
myAVAudioPlayer инициализируется так:
NSURL *soundURL = [NSURL fileURLWithPath:[mainBundle pathForResource:@"clock" ofType:@"aiff"]];
myAVAudioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:soundURL error:&error];
[myAVAudioPlayer prepareToPlay];
Я также пытался использовать формат звука .caf и класс Apple SoundEffect из примера кода BubbleLevel, и при этом нет заметных отличий в производительности.
Если скорость стрельбы низкая, звукдовольно точно.Но если я увеличу скорость стрельбы, звук будет очень неточным.
Любая помощь будет принята с благодарностью.