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!!! 🙂
En matemática, la multiplicación o producto de matrices es la operación de composición efectuada entre dos matrices, o b[...]
The Peanuts Movie fue la película animada de Snoopy & Charlie Brown personajes principales de la serie de tiras cóm[...]
MVC es un patrón de arquitectura de software que separa una aplicación en tres componentes lógicos principales. Estos s[...]
Tiempo atras me pidieron un ejemplo de como realizar un reporte con iReport tipo factura, recibo o como le llamen, compl[...]
SQLite es un sistema de gestión de bases de datos relacional, escrita en C, si se desea hacer uso de encriptación con S[...]
En este post les comparto una plataforma en línea diseñada para crear y compartir diagramas de flujo completamente grati[...]