LibGDX nos permite hacer uso de archivos de sonido muy fácilmente, cuenta con dos tipos de manejo de archivos, estos son:
– Sound: Carga sonidos cortos y que se repiten muchas veces, por ejemplos disparos, gritos, explosiones, etc
– Music: Sirve para archivos mas grandes, por ejemplo la música de fondo.
Para cargar un archivo SOUND se utiliza la forma:
sound = Gdx.audio.newSound( Gdx.files.getFileHandle("sound/warning.wav", FileType.Internal) );
Para cargar un archivo MUSIC:
music = Gdx.audio.newMusic(Gdx.files.getFileHandle("music/gd.wav", FileType.Internal));
Los archivos de audio, se colocan en la carpeta ASSETS, se debe también eliminar estos con el método dispose()
music.dispose(); sound.dispose();
para reproducir tanto los archivos SOUND y MUSIC, se hace uso del método play().
A continuación un ejemplo de como usarlos en nuestras aplicaciones android:
01 package com.bolivia.libgdxaudio; 02 03 import java.util.Random; 04 import android.util.Log; 05 import com.badlogic.gdx.ApplicationListener; 06 import com.badlogic.gdx.Files.FileType; 07 import com.badlogic.gdx.Gdx; 08 import com.badlogic.gdx.InputProcessor; 09 import com.badlogic.gdx.audio.Music; 10 import com.badlogic.gdx.audio.Sound; 11 import com.badlogic.gdx.graphics.GL10; 12 /** 13 * @author Mouse 14 * @web https://www.jc-mouse.net/ 15 * */ 16 public class MyGame implements ApplicationListener,InputProcessor { 17 18 private Sound sound[] = new Sound[3]; 19 private Music music; 20 private float volume = 0.5f; 21 22 @Override 23 public void create() { 24 // 25 sound[0] = Gdx.audio.newSound( Gdx.files.getFileHandle("sound/warning.wav", FileType.Internal) ); 26 sound[1] = Gdx.audio.newSound( Gdx.files.getFileHandle("sound/water.wav", FileType.Internal) ); 27 sound[2] = Gdx.audio.newSound( Gdx.files.getFileHandle("sound/chafez.wav", FileType.Internal) ); 28 // 29 music = Gdx.audio.newMusic(Gdx.files.getFileHandle("music/gd.wav", FileType.Internal)); 30 music.setVolume(volume); 31 music.play(); 32 music.setLooping(true); 33 //se registra InputProcessor 34 Gdx.input.setInputProcessor(this); 35 } 36 37 @Override 38 public void dispose() { 39 //se elimina recursos 40 music.dispose(); 41 sound[0].dispose(); 42 sound[1].dispose(); 43 sound[2].dispose(); 44 } 45 46 @Override 47 public void pause() { /* ... */ } 48 49 @Override 50 public void render() { 51 //pinta un fondo rojo o.O 52 Gdx.gl.glClearColor(1,0,0, 1); 53 Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT); 54 } 55 56 @Override 57 public void resize(int arg0, int arg1) { /* ... */ } 58 59 @Override 60 public void resume() { /* ... */ } 61 62 /* ====== Metodos de InputProcessor ====== */ 63 @Override 64 public boolean keyDown(int arg0) { 65 return false; 66 } 67 68 @Override 69 public boolean keyTyped(char arg0) { 70 return false; 71 } 72 73 @Override 74 public boolean keyUp(int arg0) { 75 return false; 76 } 77 78 @Override 79 public boolean mouseMoved(int arg0, int arg1) { 80 return false; 81 } 82 83 @Override 84 public boolean scrolled(int arg0) { 85 return false; 86 } 87 88 @Override 89 public boolean touchDown(int x, int y, int pointer, int newParam) { 90 //se genera numero al azar 91 Random r = new Random(); 92 int n = r.nextInt(3); 93 Log.i("Sonido LibGDX", "sonido con id #" + n); 94 sound[n].play(1f);//reproduce sonido 95 return false; 96 } 97 98 @Override 99 public boolean touchDragged(int arg0, int arg1, int arg2) { 100 return false; 101 } 102 103 @Override 104 public boolean touchUp(int arg0, int arg1, int arg2, int arg3) { 105 return false; 106 } 107 108 }
En clase anterior «MyGame.java«, se implementa tanto Sound como Music, la aplicación, una vez se ejecute, reproducirá una música de fondo que esta declarada en MUSIC y también, carga en un array de tipo Sound[], tres archivos los cuales serán producidos cuando se toque a pantalla del dispositivo.
Descargate el proyecto completo LibGDXAudio + los recursos utilizados en este enlace pobretón
enjoy!!! 🙂
Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.
Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye
Enjoy! :)
Si quieres cambiar el nombre de tus atributos sin tener que reescribir código java por X o Y razón, GSON te permite reno...
El patrón de desbloqueo es una medida de seguridad que tienen algunos teléfonos inteligentes para evitar el acceso al di...
En un post anterior, desarrollamos un swing para simular un efecto FLIP y recibí algunos mensajes pidiéndome un ejemplo...
Las matemáticas son fundamentales para la vida y aparte de las actividades clásicas de enseñanza desarrolladas en el aul...
NUEVA ESPECIFICACIÓN TÉCNICA DEL CÓDIGO DE CONTROL (Ver.7.0) En el marco del Nuevo Sistema de Facturación implementado p...
La comunidad 3D Buzz era una de los lugares donde la gente curiosa de aprender a realizar videojuegos buscaba recursos...
Los comentarios estan cerrados
Si trabajas con redes sociales (RRSS) a continuación te muestro tres herramintas gratuitas que te ayudaran a la hora de...
Por lo general se usan transacciones a nivel base de datos y posteriormente se llaman estos a través de procedimientos a...
En este post, aprenderemos como conectar Visual Basic 6 con SQL Server, abrir una tabla, leer su contenido y mostrar est...
Lo que veremos en este post es la configuración del driver para PHP de SQL Server que ha creado Microsoft el cual permit...
jaajjajajjaajjaa la neta ni lo lei, pero estan buenos los ejemplos nacos ahhaha uds bieeeeeeeeen!
ola sabes que quisiera cargar la jtable con datos desde una base de dato..lo cual puedo hacerlo…pero ademas quisiera agregarle un jcheckbox…y no e logrado adaptar este codigo
gracias me servio de ayuda
ola.. necesito una ayuda pero ahora mismo.. es que necesito que me des una ayuda de como puedo programar de una manera mas fácil para hacer mover una imagen estática en netbeans pero que sea a la hora de ejecutar .. pero antes de eso necesito una programación muy sencillo.. por favor darme la solución en mi correo electrónico