Frage

Ich versuche, eine sehr kleine Audiodatei abzuspielen -. Es etwa in der Länge 0,05 s, und es ist eine unkomprimierte WAV-Datei

Rgiht jetzt, ich bin mit AVAudioPlayer den Ton zu spielen.

Ich beabsichtige, den Ton mit hohen Geschwindigkeit entlang einer Schleuder zu spielen, a la The Price Is Right oder Glücksrad. Wenn ich die AVAudioPlayer mit einer Schleifenzahl von 100 instanziiert, ist es in der Tat den Ton spielt sehr schnell, wie ich erwarten würde.

Wenn ich [audioPlayer play] auf jedem ‚ticken‘ des Spinners ausführen, jedoch fällt das Audio schrecklich hinter. Meine Vermutung ist, dass, im Gegensatz zu einer hohen Schleifenzählung Einstellung [audioPlayer play] erfordert eine vollständigen Auf- und Abbau des Speichers des Audio-Clips für jede Wiedergabe.

Gibt es eine Möglichkeit den Clip zu zwingen, für eine längere Dauer in Erinnerung einrichten bleiben? Es ist eine sehr häufige Ton, und als solche würde auch halten es bis während der gesamten App Lauf in Ordnung sein.

War es hilfreich?

Lösung

Wenn Sie auf präzisere Timing abhängen, können Sie mit einer der anderen Sound-APIs, um zu versuchen. Audio Unit RemoteIO ist kompliziert, sondern ermöglicht die präziseste Timing von unkomprimierten Sounds zu spielen. OpenAL und Audio-Warteschlangen sind zwei weitere Optionen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top