У меня есть UIView, который обладает UIImageView в качестве подпредставления.Этот вид изображения предназначен для отображения анимации (в основном, с помощью метода startAnimating).Когда анимация запускается, мне также нужно воспроизвести звук.Для этой цели я использую AVAudioPlayer prepareToPlay и методы play.
Проблема, с которой я сталкиваюсь, заключается в том, что в ПЕРВЫЙ РАЗ запускается глобальная анимация (сама анимация изображения + звук), звук систематически воспроизводится до того, как анимация изображения будет фактическиначалось.Совсем не странно, если учесть, что синхронизации вообще нет.
Но как этого добиться?Есть ли какой-то обратный вызов, который можно использовать, чтобы знать, когда воспроизводится анимация изображения, и запускать воспроизведение звука оттуда ... Или, может быть, соединение UIImageView и AVAudioPlayer вообще не очень хорошая идея?
Вот мойтекущая реализация:
- (void)playSample {
previewView_ = [[[PreviewView alloc] initWithFrame:topView.bounds
backgroundImages:backgroundAnimationImages
characterImages:characterAnimationImages] autorelease];
[previewView_ setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];
[topView addSubview:previewView_];
[audioPlayer_ setDelegate:self];
[audioPlayer_ setVolume:1.0];
[previewView_ startPreview]; // This calls startAnimating on the UIImageView of previewView_
[audioPlayer_ playSound];
}