Categories
programación

Reproducir sonidos por el altavoz interno del ordenador desde java

speakers

No existe en la librería de java oficial ninguna clase que nos permita reproducir sonido a través del altavoz interno del ordenador. Buscando un poco se puede llegar a una página web personal donde se puede descargar un ejemplo de como hacerlo usando jni. El ejemplo es muy práctico para aprender, pero si únicamente quieres usarlo en tu código sigue los siguientes pasos:

  1. Descargar y extraer el siguiente archivo que contiene la librería .jar y la librería .dll necesaria para usar la librería.
  2. Crear un programa de prueba:
    import systemSpeaker.InternalSpeaker;
    
    public class Main {
        public static void main(String[] args) {
            InternalSpeaker mio = new InternalSpeaker();
            mio.beep();
            mio.click();        
            mio.play(3000, 3000);
        }
    }
    
  3. Compilar el programa. En el parámetro -cp debe de estar la ruta al archivo .jar
  4. $> javac -cp . Main.java

  5. Ejecutar el programa con el siguiente comando, el parámetro -Djava.library.path debe indicar la ruta a la librería .dll:

    $> java -Djava.library.path=. -cp . Main

    Y deberíamos oir los pitidos correspondientes por el altavoz del pc.

Dado que no hay ninguna librería más o menos oficial no estaría mal crear un proyecto en sourceforge y extender el soporte a otros sistemas operativos, como linux, pero de momento lo dejaremos en la cola de cosas pendientes 😛

Para el que le interese, aquí están los recursos que he usado para crear la librería: código fuente c y java , sdk de microsoft y jdk de sun.

4 replies on “Reproducir sonidos por el altavoz interno del ordenador desde java”

Buenos dias !

Muchas gracias por el aporte, lamentablemente no he podido descargar las librerias, parece que todos los links estan rotos.

Realmente me interesa mucho aprender a reproducir musica a través de speaker del CPU. Te agradeceré toda ayuda que puedas brindarme.

Desde ya muchas gracias !

@ovidio, acabo de comprobar el enlace al archivo zip y parece que funciona. De todos modos, remarco que la librería que yo he hecho sirve para java, si programas en otro lenguaje quizás tengas herramientas más sencillas de usar.

Leave a Reply

Your email address will not be published. Required fields are marked *