Hola, me gustaria saber como hago para que se reprodusca un archivo .mp3 mientras se ejecuta un programa en el modo grafico de java.
Si les sirve de algo uso netbeans 6.1...
Versión para imprimir
Hola, me gustaria saber como hago para que se reprodusca un archivo .mp3 mientras se ejecuta un programa en el modo grafico de java.
Si les sirve de algo uso netbeans 6.1...
hola aqui vengo dando la respuesta a lo que pregunté, un compañero de curso me pasó la clase.
No tengo la mas mímina idea de como funciona... pero se que si reproduce la música.
El la canción tiene que estar en formato .wav o .au (No estoy muy seguro del .au pero el .wav si me funcionó).
Tienes que colocar la ruta de la canción en el JTextField...
Luego se hace un objeto de la clase... y solo te aparecerá un metodo, este recive por parametros un entero... si le mandas 1 suena la cancion, si le mandas 0 se detiene.
Cita:
package XXXXXXXXXXXXXXXXX;
import javax.swing.*;
import java.io.*;
import javax.sound.sampled.*;
/**clase que hace reproducir la musca*/
public class son {
static AudioFormat audioFormat;
static AudioInputStream audioInputStream;
final JTextField textField =new JTextField("Sonata Arctica* For The Sake Of Revenge.wav");* * //AQUI VA LA RUTA DE LA CANCIÓN.....
static SourceDataLine sourceDataLine;
static int cnt=-1,a;
public son(){ }
* * class PlayThread extends Thread{
* * byte tempBuffer[] = new byte[10000];
* * * * public void run(){
* * * * try{
* * * sourceDataLine.open(audioFormat);
* * * sourceDataLine.start();
* * * * * * while((cnt = audioInputStream.read(tempBuffer,0,tempBuffer.leng th)) != -1 && a==1){
* * * * if(cnt > 0){
* * * * * sourceDataLine.write(tempBuffer, 0, cnt);
* * * * }//fin if
* * * * }//fin while
* * * * playAudio();
* * * * }catch (Exception e) {
* * * * * * System.out.print(":(");
* * }//catch
* * }
* * }
* *
* * private void playAudio() {
* * try{
* * * if(cnt==-1){
* * * File soundFile =new File(textField.getText());
* * * audioInputStream = AudioSystem.getAudioInputStream(soundFile);
* * * audioFormat = audioInputStream.getFormat();
* * * DataLine.Info dataLineInfo =new DataLine.Info(SourceDataLine.class,audioFormat);
* * * sourceDataLine =(SourceDataLine)AudioSystem.getLine(dataLineInfo) ;
* * * new PlayThread().start();
* * * }
* * }catch (Exception e) {
* * * * System.out.print(":(");
* * }//end catch
* }//end playAudio
* * public void play(int b){
* * * a=b;
* * * cnt=-1;
* * * if(b==1){
* * * playAudio();
* * * }
* * }
}
Gracias por compartir la solución. Seguro que a alguien le resulta útil.
Dejo el tema abierto por si alguien quiere comentar algo.
Un saludo,
Vera.