Als ich anfing, SoundEngine (von CrashLanding und TouchFighter) zu benutzen, hatte ich von ein paar Leuten gelesen, die empfahlen, es nicht zu benutzen, weil es ihnen zufolge nicht stabil genug war. Dennoch war es die einzige Lösung, die ich kannte, um Sounds mit Tonhöhen- und Positionssteuerung zu spielen, ohne C ++ und OpenAL zu lernen, also ignorierte ich die Warnungen und fuhr damit fort.
Aber jetzt mache ich mir Sorgen. Das 2.2 SDK führte AVFoundation ein. Mit SoundEngine von CrashLanding (für Sounds) und AVAudioPlayer (für Musik) fand ich heraus, dass sich SoundEngine merkwürdig verhält, wenn der einzige existierende AVAudioPlayer veröffentlicht wird (alle Sounds hören auf, bis ein neuer AVAudioPlayer gestartet wird). Ungefähr zur gleichen Zeit, als das 2.2 SDK herauskam, wurde der CrashLanding-Beispielcode auf mysteriöse Weise von der ADC-Site entfernt. Ich bin besorgt, dass es noch mehr böse Überraschungen geben wird.
Meine Frage ist: Kennt jemand eine Open-Source-Alternative zu SoundEngine? Vielleicht sogar eine C ++ - Bibliothek, die OpenAL verwendet?
Das Kowalski-Projekt bietet eine datengesteuerte und portable Sound-Engine, die derzeit auf iOS, OS X und Windows läuft. Die Engine wird unter der zlib-Lizenz veröffentlicht und bietet Positions-Audio, Pitch-Control usw.
Warum nicht einfach AVFoundation verwenden? Es ist ziemlich einfach zu handhaben und schön flexibel - abgesehen davon, dass Sie genaues Timing brauchen (sagt die Apple-Dokumentation - aber ich habe es ziemlich ausgiebig getestet und dennoch wichtige praktische Probleme gefunden), sehe ich keinen Grund, nicht zu nutzen es.
Ich habe eine einfache Sound-Engine für OpenAL geschrieben. Es gibt keine Positionskontrollen (ich brauchte sie nicht), aber es wäre trivial hinzuzufügen, wenn Sie den Rest nach Ihren Wünschen finden. Und es gibt auch einige experimentellen Soundcode im Cocos2D Motor. Es hat sowohl Tonhöhen- als auch Positionsregler und sieht ziemlich brauchbar aus.
Tags und Links c++ iphone core-audio openal