2016-06-20 16 views
0

Ich benutze AVAudioPlayer, um einen Klick-Sound zu spielen, wenn der Benutzer auf eine Schaltfläche klickt.Behalten Sie AVAudioPlayer Sound im Speicher

Da es eine Verzögerung zwischen dem Hahn und dem Ton, spiele ich den Ton einmal in viewDidAppear mit Volumen = 0

Ich fand, dass, wenn der Benutzer auf die Schaltfläche innerhalb eines Zeitraums tippt der Ton sofort spielt, aber nach einer gewissen Zeit gibt es auch in diesem Fall eine Verzögerung zwischen dem Abgriff und dem Ton.

Es scheint wie im ersten Fall der Sound stammt aus dem Cache des ersten Spiels, und im zweiten Fall muss die App den Sound erneut laden.

Deshalb spiele ich jetzt den Ton alle 2 Sekunden mit Lautstärke = 0 und wenn der Benutzer tatsächlich auf den Knopf klopft, kommt der Ton sofort.

Meine Frage gibt es einen besseren Ansatz dafür?

Mein Ziel wäre es, den Sound im Cache während der gesamten Lebensdauer der App zu halten.

Danke,

Antwort

0

Wenn Sie den Zeiger auf AVAudioPlayer dann Ihrem Sound in Erinnerung bleibt und keine andere Verzögerung auftreten speichern. Die erste Verzögerung wird durch das Laden von Sound verursacht, also ist Ihre 1. Wiedergabe in viewDidAppear richtig.