Corona Sdk ofrece una librería de audio para manejar sonidos, audio o música en nuestras creaciones, es algo fundamental en todo framework y en los videojuegos.
Veamos como reproducir, pausar y detener sonidos con corona sdk.
Reproducir sonidos
Para reproducir sonidos debemos usar el siguiente código.
local audio1 = audio.loadSound("audios/button.wav") local audioplay = audio.play(audio1)
Podemos ver que usamos la variable “audio” que es una librería de corona sdk y sirve para manejar los audios, formatos soportados wav y mp3.
La funcion audio.loadSound(src) recibe como parametro la ruta del archivo de sonido que deseamos reproducir.
La funcion audio.play(audio1) recibe el descriptor de loadSound e inicia la reproducción del sonido/audio.
La variable playsound devuelve el canal de reproducción del sonido, por default el canal es 1 pero es posible definir el canal de la siguiente forma.
audioplay = audio.play(audio1,{channel=2})
Donde el canal es = 2.
También es posible definir el loop o repetir el audio, asi:
audioplay = audio.play(audio1,{loop=5})
El audio se repetirá 5 veces, o las veces que se defina, para reproducir infinito se debe hacer : {loop=-1}
Canales de reproducción
Los canales de reproducción sirven para mantener diferentes hilos de reproducción, por ejemplo:
- Un canal puede ser la música de fondo
- Un canal puede ser el efecto al tomar un objeto
- Un canal puede ser el sonido de un enemigo
- Un canal el efecto de caminar
Los canales sirven principalmente para mantener diferentes sonidos en reproducción y poderlos manejar de forma fácil.
Pausar sonidos
Para pausar un audio, este debe estar en reproducción y vamos a tomar el canal como referencia, en corona no se pausa por el nombre del archivo si no por canal.
audio.pause(1)
Si obtenemos el canal en una variable entonces podemos usar la variable.
audio.pause(audioplay)
Para continuar una reproduccion pausada tenemos que usar resume.
audio.resume(1)
También tenemos las funciones audio.isChannelPaused(X) para saber si el canal X esta pausado y la funcion audio.isChannelPlaying(X) para saber si el canal X esta reproduciendo.
Detener sonidos
Para detener sonidos debemos usar audio.stop(channel), por ejemplo:
audio.stop(1)
Por ahora eso seria todo. Que opinan ?