Chcę odtwarzać proste efekty dźwiękowe, gdy ludzie naciskają pewne przyciski w mojej aplikacji i próbowałem kilku rzeczy, ale zawsze mam opóźnienie, które sprawia, że dźwięk wydaje się synchronizacja.Odtwarzanie efektów dźwiękowych bez opóźnień w Objective-C
Podążyłem za samouczkami here, więc wypróbowałem kompilację w usłudze audio, ale z opóźnieniem i wypróbowałem odtwarzacz AVAudioPlayer, ale miało to również opóźnienie, mimo że użyłem "prepareToPlay" ".
Czy muszę zainstalować dużą i nieporządną bibliotekę, taką jak Finch, aby uzyskać prosty efekt dźwiękowy bez opóźnień w mojej prostej aplikacji?
Mam nadzieję, że możesz wyjaśnić dla mnie rzeczy!
UPDATE
Kod audio Services:
NSURL *soundURL = [[NSBundle mainBundle] URLForResource:@"PlopsX4"
withExtension:@"aif"];
AudioServicesCreateSystemSoundID((CFURLRef)soundURL, &sound1);
AudioServicesPlaySystemSound(sound1);
Kod AVAudioPlayer w viewDidLoad:
NSURL *soundURL = [[NSBundle mainBundle] URLForResource:@"PlopsX4"
withExtension:@"aif"];
self.avSound = [[AVAudioPlayer alloc]
initWithContentsOfURL:soundURL error:nil];
[self.avSound prepareToPlay]
Kod AVAudioPlayer w metodzie, gdzie chcę, aby odtworzyć plik:
[self.avSound play];
głupie pytanie, ale czy jesteś pewien, że nie jest chwila ciszy na początku pliku audio? Czy przełożyłeś to na coś w rodzaju zuchwałości? –
Ponadto, w jaki sposób testujesz? Urządzenie? Symulator? Na jakim sprzęcie testujesz, jeśli znajduje się on na urządzeniu? –
Szukałeś SO. Wygląda na to, że jest wiele innych pytań na ten temat. Niektóre sugerują pewne hacki do wstępnego załadowania, inne sugerują używanie dźwięków systemowych (SystemSoundID). – KlausCPH