problemas de audio
Que tal a todos, espero hayan tenido un buen día... en la universidad me dejaron desarrollar un juego, bueno, el problema está en que cuando ejecuto el proyecto en netbeans en windows va todo perfecto con los sonidos del juego, por decir, tengo la musica de fondo y al mismo tiempo se oyen efectos de sonido como disparos, etc. pero me paso a ubuntu 11.04 a ejecutar mi proyecto pero solo se oye la musica de fondo y los efectos de sonido desaparecen... ¿A qué se debe eso? quizás esto ni tenga que ver con mi código fuente y yo aquí dando lata XD espero me puedan ayudar.
Saludos a todos.
- Inicie sesión o regístrese para enviar comentarios
Linux
Pues sí, es probable que tenga algo que ver con el sistema de audio en Linux. Pruébalo en otra distro que no sea Ubuntu, tal vez Fedora o algo así. Qué JVM usaste en Linux? Eso podría ser la razón de fondo (que hayas usado la que viene instalada y no la de Oracle).
JVM
Hola, primero gracias por responder... he revisado la versión de java que tengo escribiendo en la terminal: java -version. Y eso me arrojó lo siguiente:
java version "1.6.0_22"
OpenJDK Runtime Environment (IcedTea6 1.10.1) (6b22-1.10.1-0ubuntu1)
OpenJDK Client VM (build 20.0-b11, mixed mode, sharing)
La verdad es que soy nuevo en todas estas cosas (sobretodo en Linux); entonces, ¿Qué me recomiendas hacer?, creo que ya en el peor de los casos sería cambiar la distribución de Linux, así como me comentabas (que tal vez un Fedora).
No sé si esa información sea necesaria, cualquier cosa, sólo dime. Saludos que estés bien.
Oracle JVM
Prueba con la JVM de Oracle. Bájala para Linux en tu arquitectura de hardware (supongo i586), ejecutas el .bin que te va a dejar un directorio jdk1.6.0_25, y luego
export JAVA_HOME=/ruta/completa/al/jdk1.6.0_25
export PATH=$JAVA_HOME/bin:$PATH
y luego de eso corres tu aplicación nuevamente (asegúrate que la app corra con la JVM de Oracle, para eso puedes hacer que tu app imprima
y debes ver que sea 1.6.0_25, no 1.6.0_22
De pura casualidad no sera
De pura casualidad no sera que tus archivos de audio los estes lamando de esta forma?
C:\a\b\c\
porque si es asi claro que nunca los va a encontrar
Yo también pensé lo que dice
Yo también pensé lo que dice @jdd, sin embargo dice @isorxp que la música si se escucha... a menos que la forma en que buscas los clips de música sea distinta a como llamas los efectos de sonido, si es así, mejor mételos en una carpeta y los empaquetas en tu aplicación, así los llamas de manera uniforme, no importando el SO.
Certificado
Jajaj @jdd me recordaste esta certificación para software.
A mi me recuerda que a veces
A mi me recuerda que a veces quieres hacer un codigo bien hardcore y terminas haciendolo hardcode...
Bueno yo decia por si las moscas, seria bueno echarle un lente al codigo a ver que hace... a ciegas solo podemos hablara, sospechar y pensar mal
hola de nuevo
Una disculpa por responder hasta este momento (ando como loco por los proyectos de la uni)...
bueno hice lo que dijo ezamudio y ahora tengo la versiones según los comandos:
desde la terminal: java - version ...esto me arroja: java version "1.6.0_24"
desde mi app: System.getProperty("java.version") ...esto arroja: java version "1.6.0_25"
pero osea ya según esto actualicé la versión y todo. No logro salir del problema ese del audio...
jajajajaja respecto a lo que dijo java.daba.doo XD no se preocupen de eso, si estoy conciente de no
buscarlas en la unidad C: estando en Linux :) y de hecho los sonidos los tengo empaquetados en mi
app (src/sonidos/xxxx.mp3).
Yo lo que tengo pensado es que, es el S.O. que hace falta que lo configure o algo así, porque como
les comentaba, en el Windows mi código funciona a la perfección O.o
Saludos y gracias por seguir respondiendo.
Chécate entonces si tienes
Chécate entonces si tienes los códecs de audio pertinentes en tu pinguino, porque entonces me suena más a que los sonidos están en un formato, la música en otro formato, y sólo tienes instalado el códec para el formato de audio de la música.... bueno, puede ser una posibilidad...
hola neko
Ya revisé eso de los formatos, y fíjate que se me hizo buena idea lo que dijiste pero todos los archivos de audio están en .mp3 ¿tú crees? yo hasta me había emocionado jajaja de que ojalá fuera eso... bueno seguiré luchando para ver si descubro el problema, igual si siguen teniendo así ideas pues no duden en decirme por favor.
Bueno saludos a todos.
otras apps?
Otras apps tienen sonido? Tienes algun player de audio para asegurarte que se pueden reproducir MP3 y se escuchan? Busca alguna aplicación hecha en Java que reproduzca audio para ver si tiene el mismo problema (algo que no hayas hecho tu, un simple programa que reproduzca audio para que lo pruebes en Linux) - de preferencia una app que use las mismas bibliotecas que tú usas para la reproducción del audio.
por otra parte
Por otra parte, puedes hacer un programa muy simple que solamente reproduzca un mp3 de la misma forma que tu app y ver si eso funciona en Linux... si funciona, entonces la bronca con tu app es otra. Si tampoco funciona este programa simple, entonces sí puede ser una bronca con tu instalación de linux.
Arrojamiento de excepción
Hola a todos, hice una prueba, una app sencilla donde se instancian 2 objetos de tipo Sound, luego reproduzco el primero (contiene música de fondo) después reproduzco el segundo (contiene un efecto de sonido) y al reproducir el segundo me arroja una excepción, enseguida les muestro el código de la app que les dije:
Y esta es la excepción que me arroja:
GRAVE: null
javax.sound.sampled.LineUnavailableException: line with format PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian not supported.
at com.sun.media.sound.DirectAudioDevice$DirectDL.implOpen(DirectAudioDevice.java:494)
at com.sun.media.sound.AbstractDataLine.open(AbstractDataLine.java:107)
at javazoom.jlgui.basicplayer.BasicPlayer.openLine(Unknown Source)
at javazoom.jlgui.basicplayer.BasicPlayer.initLine(Unknown Source)
at javazoom.jlgui.basicplayer.BasicPlayer.startPlayback(Unknown Source)
at javazoom.jlgui.basicplayer.BasicPlayer.play(Unknown Source)
at clases.Sound.Play(Sound.java:15)
at clases.Mainx.main(Mainx.java:28)
Para reproducir los sonidos estoy usando las librerías del basic player de javazoom... Parece ser que ahora si ya es más fácil detectar donde está la falla jejeje... Ahorita lo revisaría yo mismo pero ya me voy a la uni, ya en la noche que regrese me pongo a investigar esa excepción, igual si me pudiesen ayudar se los agradecería mucho. Saludos que tengan buen día.