style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

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.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

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).

Imagen de isorxp

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.

Imagen de ezamudio

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 System.getProperty("java.version") 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

Imagen de neko069

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.

Imagen de ezamudio

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

Imagen de isorxp

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.

Imagen de neko069

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...

Imagen de isorxp

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.

Imagen de ezamudio

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.

Imagen de ezamudio

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.

Imagen de isorxp

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:

package clases;

import java.util.logging.Level;
import java.util.logging.Logger;

public class Mainx {

    public Mainx() {
    }
   
    public static void main(String[] args){
        Sound uno = new Sound();
        Sound dos = new Sound();
        try {
            uno.AbrirFichero("src/sonidos/main title.mp3"); //música de fondo
            uno.Play();
            dos.AbrirFichero("src/sonidos/beep select char.mp3"); //efecto de sonido, debe oirse un "beep"
            dos.Play();
        } catch (Exception ex) {
            Logger.getLogger(Mainx.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

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.

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">