我正在使用iOS SDK中的AVAudioPlayer在每次點擊tableView行時播放短音。 我已經手動在每一行的按鈕上啓動了@selector,它啓動了方法playSound:(id)receiver {}。從接收器我得到聲音的URL,所以我可以播放它。iPhone AVAudioPlayer應用程序在第一次播放時凍結
這種方法看起來像這樣:
- (void)playSound:(id)sender {
[audioPlayer prepareToPlay];
UIButton *audioButton = (UIButton *)sender;
[audioButton setImage:[UIImage imageNamed:@"sound_preview.png"] forState:UIControlStateNormal];
NSString *soundUrl = [[listOfItems objectForKey:[NSString stringWithFormat:@"%i",currentPlayingIndex]] objectForKey:@"sound_url"];
//here I get mp3 file from http url via NSRequest in NSData
NSData *soundData = [sharedAppSettingsController getSoundUrl:defaultDictionaryID uri:soundUrl];
NSError *error;
audioPlayer = [[AVAudioPlayer alloc] initWithData:soundData error:&error];
audioPlayer.numberOfLoops = 0;
if (error) {
NSLog(@"Error: %@",[error description]);
}
else {
audioPlayer.delegate = self;
[audioPlayer play];
}
}
一切正常,除了一些聲音的第一齣戲精。應用程序凍結約2秒鐘,並播放聲音。第二和其他聲音播放正好在點擊聲音按鈕後正常工作。
我想知道爲什麼在應用程序啓動時第一次播放時會停留約2秒?
如果你認爲我拿錯解,請告訴我正確的選擇。
問候
謝謝,我會試試這個... – 2010-09-23 08:38:26