No puedo cargar un fichero de sonido

whiteskull
25 de Mayo del 2008
Hola que tal! Soy nuevo en j2me y en java, empecé hace poco con un ejemplo práctico de un juego que encontré en "Java en castellano", el cual funciona muy bien... pero al llegar al apartado de sonido encuentro problemas a excepto creando y reproduciendo tonos. ¿Por que es tan dificil cargar ficheros de sonidos y reproducirlos mediante los métodos "createPlayer"? Aún introduciendo los ficheros en el paquete, no consigo que los encuentre mediante "getResourceAsStream"... De último he intentado leer los ficheros utilizando la clase "File" pero el entorno de trabajo me manifiesta que no encuentra dicha clase (NetBeans)... habiéndola importado: import java.io.* ¿Qué puedo hacer? gracias de antemano

whiteskull
25 de Mayo del 2008
Hola WhiteSkull, ya resolví el "problem", rectifico si antes comenté que era dificil hacer sonido con la función "createPlayer", si, mediante un proceso sencillo que mostraré y que a mi me funciona al igual que en el PC también en el Motorola K1...

Toda la documentación la extraje de esta página "http://www.it.uc3m.es/celeste/docencia/j2me/tutoriales/midp2_0/PracticaMedia/"
[code]
// clase Sonido, version 0.00.001 ¿?

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.media.*;
import javax.microedition.media.control.*;
import java.io.*;

public class Sonido {
private InputStream flujoWAV, flujoMidi; // Defino dos variables InputStream, una para el MIDI y otra para el WAV
private Player ReproductorWAV, ReproductorMidi; // Defino dos Players, uno para WAV y otro para MIDI

public Sonido() { // Constructor, donde inicio las varibales
flujoWAV=null;
flujoMidi=null;
ReproductorWAV=null;
ReproductorMidi=null;
}

public void loadWav(String nombre){ // Cargamos el fichero, en este caso ya se la ruta solo le doy el nombre del fichero
flujoWAV=getClass().getResourceAsStream("/Sonidos/"+nombre);
try {// si no hay problemas ejecuta esta parte del código
ReproductorWAV = Manager.createPlayer(flujoWAV,"audio/x-wav");
ReproductorWAV.realize(); // Motores en marcha, "cassette" insertado
ReproductorWAV.prefetch();// Depósito lleno, listo para ser reproducido (Reduce el tiempo de latencia)
} catch (Exception e) {}
}

public void loadMidi(String nombre){
flujoMidi=getClass().getResourceAsStream("/Sonidos/"+nombre);
try {
ReproductorMidi=Manager.createPlayer(flujoMidi,"audio/midi");
ReproductorMidi.realize();
ReproductorMidi.prefetch();
} catch (Exception e) {}
}

public void playMidi() {
try {
ReproductorMidi.start();
} catch (Exception e) {}
}

public void playWav() {// Cada vez que llamo a la función cuando pueda "reproduce" el WAV
try {
ReproductorWAV.start();
} catch (Exception e) {}
}
}

// está en plan cutre pero cada uno que se lo curre...
[/code]