AVAudioPlayer - czy musisz utworzyć właściwość, aby działała? (Xcode)
Jest to kod, którego używam teraz i nie działa (nic nie dzieje się po naciśnięciu przycisku, który wywołuje tę metodę). Wcześniej posiadałem właściwość dla odtwarzacza audio i działała (wszystkie odtwarzacze audio poniżej były oczywiście odtwarzaczem własnym). Problem polegał na tym, że gdy próbowałem dwukrotnie odtworzyć dźwięk, zakończyłoby to pierwsze odtwarzanie dźwięku.
To nie jest dobre, ponieważ tworzę płytę rezonansową i chcę, aby dźwięki mogły się nakładać. Myślałem, że mogę po prostu uczynić audioPlayer lokalną zmienną zamiast właściwości i wszystko będzie dobrze, ale teraz dźwięk w ogóle nie działa i nie mogę zrozumieć dlaczego. We wszystkich samouczkach, które znalazłem dla AVAudioPlayer, tworzona jest własność, ale nikt nie wyjaśnia dlaczego. Jeśli to nie zadziała, jakie alternatywy muszę wykonać, aby dźwięki się pokrywały?
- (void)loadSound:(NSString *)sound ofType:(NSString *)type withDelegate:(BOOL)delegate {
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]
pathForResource:sound
ofType:type]];
AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
if (delegate) audioPlayer.delegate = self;
[audioPlayer prepareToPlay];
[audioPlayer play];
}