Я не уверен, что это решит вашу конкретную проблему (поскольку я не до конца понимаю, что вы пытаетесь сделать), но, как правило, вы должны создать свой набор AVAudioPlayer
объектов и затем вызвать [myPlayer prepareToPlay]
на каждом из них.Этот вызов загружает данные в буферы, готовые к воспроизведению, но фактически не запускает их.Затем, когда вы будете готовы запустить все игры (в viewDidLoad
или где-либо еще), одновременно вызовите [player play]
для них.
Обратите внимание, что это, вероятно, будет работать только лучше, чем у васв настоящее время, но это все еще не будет работать идеально.Поддержание идеальной синхронизации анимации и музыки чрезвычайно сложно, и, как правило, это может быть достигнуто только с помощью таймера, который периодически сбрасывает свою периодичность в ответ на информацию от механизма воспроизведения звука о том, где именно воспроизведение звука в настоящее время находится.