我有一個擁有UIImageView作爲子視圖的UIView。此圖像視圖旨在顯示動畫(基本上,使用startAnimating方法)。當動畫開始時,我還需要播放聲音。爲此,我使用AVAudioPlayer的prepareToPlay和播放方法。UIImageView/AVAudioPlayer同步
我遇到的問題是,第一次全球動畫(圖像動畫本身+聲音)啓動時,在圖像動畫實際開始之前系統地播放聲音。考慮到沒有任何同步,完全不奇怪。
但是如何實現這種同步呢?是否有某種回調可以用來了解何時播放圖像動畫,並從那裏啓動聲音播放...... 或者,也許耦合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];
}
似乎沒有這樣做,但確實如此:'[audioPlayer_ performSelector:@selector(play)withObject:nil afterDelay:0.1];'無論如何;} – AgentCorleone 2011-06-15 06:10:12