2010-11-28 11 views
12

Estoy haciendo un juego y me gustaría tener un bucle de fondo de la música del juego y, además, tener dos canales diferentes de efectos de sonido. Me gustaría controlar el volumen de estos canales. Miré fmod, pero estaba fuera de mi presupuesto. Ahora, en cambio, estoy mirando el ejemplo de MixerHostAudio proporcionado por Apple. Es un claro ejemplo, pero un poco largo de más de 1000 líneas para tocar dos sonidos, así que me pregunto si debería estar haciendo otra cosa.¿La manera más conveniente de reproducir sonido en los juegos de iOS?

Mi API ideal sería algo como esto:

SoundSystem *sounds = [SoundSystem soundSystemWithLoop:@"koto.mp3"]; 
[sounds play:@"chimes.mp3" channel:1 looping:YES volume:0.0]; 
[sounds fadeTo:1.0 channel:1 delay:0.5]; 
[sounds play:@"buddha_bell.mp3" channel:2]; 
+0

en los viejos tiempos CocosDenshion Sound Engine fue útil para esto. – Fattie

Respuesta

11

Puede utilizar AVAudioPlayer para el bucle de fondo y Finch de SFX. Ambos son fáciles de trabajar. Tendría que escribir el control de volumen del canal encima de Finch usted mismo, pero eso tampoco es difícil, ya que es solo una matriz de sonidos con un control de volumen común.

+0

Gracias por indicarme AVAudioPlayer y Finch. ¿Podría simplemente usar varios AVAudioPlayers? Según los documentos, parece que puedo tener varios y deben mezclarse, no lo intentaron todavía. – Bemmu

+1

Puedes, pero los sonidos probablemente tengan una latencia demasiado alta para un juego (por eso escribí Finch). Pruébalo, tal vez 'AVAudioPlayer' mejoró recientemente. – zoul

+0

Gracias. Parece ser lo suficientemente rápido para mis necesidades. – Bemmu

12

CocosDenshion Sound Engine hace todo que desee.

Es un uso trivial vez que se obtiene en su proyecto.

CocosDenshion es la parte de sonido de Cocos2D.

Personalmente, no me importa Cocos2D (aunque, por supuesto, muchas personas lo aman y lo usan).

Sin embargo CocosDenshion de sonido hace todo lo que quieren sin problemas. Sí, hace ambos bucles BG y SFX. Gestiona toda la memoria, etc.

Es fácil de usar CocosDenshion (solo copie algunos archivos en su proyecto) - no hay problema. (No tiene que engañar con toda la situación de Cocos2D ... simplemente instala la sección Denshion).

Espero que ayude!

0

Estoy usando el motor SoundMaster. Es mucho mejor que CocosDension motor de sonido, debido ARC apoyo, gestión de memoria y muchas otras características como fundido de entrada/salida o volúmenes relativos para los efectos.

Cuestiones relacionadas