2009-04-04 13 views
5

Bir iPhone oyunu geliştiriyorum ve şu anda arka plan müziği ve sesleri çalmak için AVAudioPlayer kullanıyorum. Şu an okuduğumdan, bunun en iyi yol olduğuna emin değilim, fakat diğer alternatifler aşırı derecede karmaşık görünüyor.Herhangi bir iyi iPhone ses yöneticisi çerçevesi?

iPhone üzerinde çalışan ve entegre edebileceğim iyi bir açık kaynak çerçevesi var mı? Sadece ses seviyesini kontrol etmem ve farklı oyun olaylarına dayanan sesleri tetiklemem gerekiyor.

Açıklama: AVAudioPlayer, tek bir ses çalma gereksinimlerimi karşılar, ancak birden fazla ses ayarlayabildiğim ve bazı tuşlara göre oynatabildiğim bir sarmalayıcı sınıfı istiyorum.

cevap

3

Mesajınızdan AVAudioPlayer'ın gereksinimlerinizi karşılayıp karşılamadığı açık değil. Bir yandan, karşılaştığınız herhangi bir eksiklikten bahsetmediniz, ama öte yandan alternatifler istemeniz bazılarının var olduğunu gösteriyor.

AVAudioPlayer gereksinimlerinizi karşılarsa, neden hayatı zorlaştırır?

Eğer AVAudioPlayer ihtiyaçlarınızı karşılamıyorsa, herhangi bir şey yapmadan önce neye ihtiyacınız olduğunu açıklamanız gerekir;

+0

AVAudioPlayer gereksinimlerimi karşılar, ancak yalnızca bir ses çalmak için kullanışlıdır. Birkaç ses çıkarabileceğim ve farklı olaylara dayanarak oynayabileceğim bir sarıcı rica ediyorum. Kod yazmadan önce, bir alternatif olup olmadığını merak ettim. – pgb

2

Apple'ın ay lander örnek kod uygulamasında içerdiği ses motoru, her seferinde birden çok ses çalmanızı sağlar.

+0

Bu örnek kod artık SDK 2.2'ye dahil edilmemiştir. Çekmenin neden bir sebebi var mı? – pgb

2

AVAudioPlayer uygulamasını kullanabilirsiniz. Seslerinizin her biri, bu sınıfın farklı bir örneği olacak. Bir sözlük veya dizideki tüm sesleri (oynatıcılar) tutun. Ardından diziyi dizine ekleyerek ya da dict'ten bir anahtar alarak kolayca oynayabilirsiniz. Her sesin kendi sesi olabilir ya da tüm birimleri istediğiniz gibi ayarlamak için diziyi veya diziyi tekrarlayabilirsiniz.

Hatırlanması gereken birkaç nokta: 1. sesleri zamanında oynatmanız gerekiyorsa, o zaman dosyadan yüklendikten hemen sonra -prepareToPlay yöntemini kullanın. 2. Bir sesi durdurursanız, o zaman -prepareToPlay işlemi geri alınır. Bir sesi duraklatırsanız, tekrar oynatmadan önce, currentTime özelliğini 0 olarak ayarladığınızdan emin olun, böylece ses baştan başlar.

İlgili konular