2009-04-04 11 views
5

Sto sviluppando un gioco per iPhone e attualmente utilizzo AVAudioPlayer per riprodurre musica e suoni di sottofondo. Da quello che ho letto, non sono sicuro che sia il modo migliore, ma altre alternative sembrano essere eccessivamente complesse.Qualunque buon framework per l'impianto audio di iPhone?

C'è qualche buon framework open source che funziona su iPhone e posso integrarmi? Ho solo bisogno di controllare il volume e attivare i suoni in base a diversi eventi di gioco.

Chiarimento: AVAudioPlayer soddisfa le mie esigenze per la riproduzione di un suono, ma mi piacerebbe una classe wrapper in cui posso impostare più suoni e farli giocare in base a qualche chiave.

risposta

3

Non è chiaro dal tuo messaggio se AVAudioPlayer soddisfa le tue esigenze. Da un lato non hai menzionato alcuna carenza che hai riscontrato, ma d'altra parte la tua richiesta di alternative suggerisce che ce ne sono alcuni.

Se AVAudioPlayer soddisfa le tue esigenze, perché rendere la vita difficile?

Se AVAudioPlayer non soddisfa le proprie esigenze, è necessario spiegare che altro è necessario prima che chiunque possa fare qualsiasi cosa se non indovinare ciò che si sta cercando.

+0

AVAudioPlayer soddisfa le mie esigenze, ma è utile solo per la riproduzione di un suono. Mi piacerebbe un wrapper in cui posso impostare diversi suoni e farli suonare in base a diversi eventi. Prima di scrivere codice, mi chiedevo se esistesse un'alternativa. – pgb

2

Il motore audio che Apple include nell'applicazione di codice di campionamento di Lander consente di riprodurre più suoni alla volta e tutto.

+0

Questo codice di esempio non è più incluso in SDK 2.2. Sai se c'è una ragione per cui l'ha tirato? – pgb

2

È possibile utilizzare AVAudioPlayer. Ciascuno dei tuoi suoni sarà una diversa istanza di quella classe. Mantieni tutti i suoni (giocatori) in un dizionario o in un array. È quindi possibile riprodurre facilmente ciascuno indicizzando l'array o ottenendo una chiave dal dettato. Ogni suono può avere il proprio volume, oppure è possibile iterare l'array o dettare per impostare tutti i volumi a qualsiasi livello desiderato.

Coppia di punti da ricordare: 1. se è necessario riprodurre i suoni in modo tempestivo, quindi utilizzare il metodo -prepareToPlay subito dopo il caricamento dal file. 2. se si interrompe un suono, quindi -prepareToPlay viene annullato. Se metti in pausa un suono, prima di riprodurlo di nuovo, assicurati di impostare la proprietà currentTime su 0 in modo che il suono inizi dall'inizio.

Problemi correlati