Tutorial:Audio (Español)

En LÖVE, el audio es del dominio del módulo love.audio, que usa OpenAL para la reproducción. love.audio tiene solo un tipo de objeto de audio: el Source. Puedes cargar audio y reproducirlo así:

sound = love.audio.newSource("pling.wav", "static") -- ese "static" le dice a LÖVE que cargue el archivo en memoria, excelente para efectos de sonido (corto)
music = love.audio.newSource("techno.ogg", "stream") -- ese "stream" le dice a LÖVE que reproduzca el archivo desde el dico, excelente para la música (larga)
sound:play()
music:play()

Formatos

LÖVE soporta muchos formatos de audio, gracias al módulo love.sound, que maneja toda la decodificación. Los formatos soportados incluyen:

  • MP3
  • Ogg Vorbis
  • WAVE
  • y casi cualquier formato Tracker que se te pueda ocurrir: XM, MOD, y como otros veinte .

Ogg Vorbis y WAVE de 16-bit son los formatos recomendados. Otros pueden tener problemitas menores. Por ejemplo, el decodificador de MP3 podría meter muestras de más dependiendo del codificador usado. Estos problemas provienen de las bibliotecas que LÖVE usa para decodificar archivos de audio y no se pueden arreglar en LÖVE directamente.

Static vs. Streaming

Ten en cuenta que si a love.audio.newSource le pasas "static" como segundo argumento el archivo de sonido se cargará en la memoria, así que si cargas un archivo .ogg comprimido de 5 MB de esa forma, ocupará ~50 MB de RAM al descomprimirse por completo. Considera no usar "static" en tales casos.

Si omites el "static", el audio se reproducirá desde el archivo, algo que te ahorrará mucha memoria cuando trates con archivos masivos.

Control de Audio

Para pausar, detener, cambiar volumen, reproducir en bucle, tono, etc., simplemente llama al metodo relevante de una Source.

src1 = love.audio.newSource("bang.wav", "static")
src2 = love.audio.newSource("bgm.mp3", "stream")

src1:setVolume(0.9) -- 90% del volumen ordinario 
src1:setPitch(0.5) -- una octava más abajo
src2:setVolume(0.7)

src1:play()
src2:play()

Ejemplo

function love.load()
	source = love.audio.newSource("Ye-Olde-Pub_Looping.mp3", "stream")
end

function love.update(dt)
	if not source:isPlaying( ) then
		love.audio.play( source )
	end
end

Puedes encontrar más detalles en la documentación de Source.

Vease también

Otros idiomas