Autor
|
Tema: reproducir mp3 (Leído 11,382 veces)
|
cuervo
Desconectado
Mensajes: 87
|
hola pues el asunto es el siguiente estoy programando un juego muy sencillo y megustaria ponerle musica de fondo de unos de mis grupos pero el problema es que java solo manega midis alguien sabe de alguna clase de particulares o que se pa de algun tuto sobre el tema que me pudice informar se lo agradeceria mucho
|
|
|
En línea
|
|
|
|
Casidiablo
|
JavaZoom recientemente ha publicado un driver LGPL para MP3, que se une al ya existente Ogg Vorbis. MP3 SPI (Service Provider Interface) es un driver "enchufable" al sistema JavaSound del J2SE. JavaZoom es una web especializada en software multimedia open source, un terreno en donde, en mi opinrión, el mundo Java brilla bastante por su ausencia, pese a existir un estándar J2SE de audio y výdeo y una implementacrión open source de referencia de Sun: el Java Media Framework (JMF). Sobre como incluir MP3 en Java hay un artículo en JavaWorld ( http://www.javaworld.com/javaworld/jw-11-2000/jw-1103-mp3.html) http://today.java.net/pub/n/MP3SPI1.9
|
|
|
En línea
|
|
|
|
cuervo
Desconectado
Mensajes: 87
|
gracias Casidiablo pero no habra otra forma aparte de esa y del jmf
|
|
|
En línea
|
|
|
|
cuervo
Desconectado
Mensajes: 87
|
hey Casidiablo con el MP3 SPI no viene nada de codigo o algo que explique como es posible la reproduccion del mp3 por ejemplo el codigo que que uso para la musica del juego es este import javax.sound.sampled.*; import java.io.*;
public class SunTest extends Thread{
/*public static void main(String[] args){ SunTest p = new SunTest(); p.start(); }*/
public SunTest(){ }
public void run(){ testPlay("02_War Of The Universe.wav"); }
public void testPlay(String filename) { try { File file = new File(filename); AudioInputStream in= AudioSystem.getAudioInputStream(file); AudioInputStream din = null; AudioFormat baseFormat = in.getFormat(); AudioFormat decodedFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, baseFormat.getSampleRate(), 16, baseFormat.getChannels(), baseFormat.getChannels() * 2, baseFormat.getSampleRate(), false); din = AudioSystem.getAudioInputStream(decodedFormat, in); // Play now. rawplay(decodedFormat, din); in.close(); } catch (Exception e) {System.out.println("SSSSS"); e.printStackTrace(); //Handle exception. } }
private void rawplay(AudioFormat targetFormat, AudioInputStream din) throws IOException, LineUnavailableException { System.out.println("SSSSS"); byte[] data = new byte[4096]; SourceDataLine line = getLine(targetFormat); if (line != null) { // Start line.start(); int nBytesRead = 0, nBytesWritten = 0; while (nBytesRead != -1) { nBytesRead = din.read(data, 0, data.length); if (nBytesRead != -1) nBytesWritten = line.write(data, 0, nBytesRead); } // Stop line.drain(); line.stop(); line.close(); din.close(); } }
private SourceDataLine getLine(AudioFormat audioFormat) throws LineUnavailableException { System.out.println("SSSSS"); SourceDataLine res = null; DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioFormat); res = (SourceDataLine) AudioSystem.getLine(info); res.open(audioFormat); return res; } }
simplemente reproduce el wav eso es lo que me interesa mas que nada el codigo de como se hace la reproducion no tienes alguna idea de como hacerlo o alguien.
|
|
|
En línea
|
|
|
|
Casidiablo
|
Se me ocurre que utilices un programa externo y utilizar las clases Procces Y Runtime para ejecutar comandos, por ejemplo si usas linux, puedes hacer lo siguiente para reproducir un mp3: Process p = Runtime.getRuntime().exec("mpg123 archivo.mp3"); O algo así. Saludos!!
|
|
« Última modificación: 12 Junio 2007, 17:01 pm por Casidiablo »
|
En línea
|
|
|
|
marioly
Desconectado
Mensajes: 239
http://marioly.hackerss.com
|
Se me ocurre que utilices un programa externo y utilizar las clases Procces Y Runtime para ejecutar comandos, por ejemplo si usas linux, puedes hacer lo siguiente para reproducir un mp3: Process p = Runtime.getRuntime().exec("mpg123 archivo.mp3"); O algo así. Saludos!! Eso no seria tan bueno , en Java no se usa tanto la llamada de esa forma a otros procesos por que: 1.- Resta portabilidad 2.- Hace dependiente tu codigo de otras aplicaciones Si quieres usar mp3 en Java puedes usar plugins, como : http://java.sun.com/products/java-media/jmf/mp3/download.htmlsaludos
|
|
|
En línea
|
|
|
|
Casidiablo
|
gracias Casidiablo pero no habra otra forma aparte de esa y del jmf
|
|
|
En línea
|
|
|
|
marioly
Desconectado
Mensajes: 239
http://marioly.hackerss.com
|
Pero por que lo a preguntado asi? , por que no encontraba codes de ejemplo.., por que no lo puede correr , hubiera sido mejor poner un ejemplo . El exec de tu post no correra la musica de fondo (que es el asunto del post), llamara a otra aplicacion que corra el mp3 lo que no es muy bueno..
|
|
|
En línea
|
|
|
|
Casidiablo
|
Pero por que lo a preguntado asi? , por que no encontraba codes de ejemplo.., por que no lo puede correr , hubiera sido mejor poner un ejemplo . El exec de tu post no correra la musica de fondo (que es el asunto del post), llamara a otra aplicacion que corra el mp3 lo que no es muy bueno.. Exacto! Y mas aun utiliza un programa externo por lo que, como dices, el programa dejaría de ser portable. No hay duda de que es mejor hacerlo con JMF, como se había citado al principio del post. Saludos
|
|
|
En línea
|
|
|
|
cuervo
Desconectado
Mensajes: 87
|
gracias a todos perdon por las tardanza en contestar pero estado ucupado con la escuela por ahora estoy estudiando el codigo del aTunes es muy interesante aunque me esta costando trabajo. bueno gracias
|
|
|
En línea
|
|
|
|
|
|