Música não toca

Boa noite pessoal!

Fiz um player, mas a música não toca, este código é minha thread que chamo na minha GUI.

public class Load implements Runnable{
    //thread criada a partir da estensão para a classe Runnable e reescrevendo o método run

	private static SourceDataLine line;//cria uma variável do tipo SourceDataLine, pois vai ser uma entrada de
        //áudio
	private File soundFile;

        int cont1 = 0;
        int cont2 = 0;

	public Load(File soundFile) {//inicializador
		this.soundFile = soundFile;//chamado lá no AudioPlayer
	}

	public void run() {
		try {
			//A Partir de arquivo
			AudioInputStream stream = AudioSystem.getAudioInputStream(soundFile);
                                                //recebe o audio, utilizando o método da classe AudioSystem para pegar ele.


			//A Partir de URL
			//stream = AudioSystem.getAudioInputStream(new URL("http://hostname/audiofile"));

			
			AudioFormat format = stream.getFormat();
                                               	//Cria a linha
                                               // Cria o canal de comunicacao com o driver de som
                                               //SourceDataLine é usado pois é uma entrada de áudio.
                                               //DataLine.info é uma sub-classe da Line.Info para criar a linha

		              SourceDataLine.Info info = new DataLine.Info(
					SourceDataLine.class, format,
					((int)stream.getFrameLength()*format.getFrameSize()));
                                                       //(int)stream.getFrameLength()*format.getFrameSize())  retorna o tamanho da música em bytes
                                                
			line = (SourceDataLine) AudioSystem.getLine(info);
			

                                                line.open();
			line.start();
			
			int numRead = 0;
                        		                             
			//Libera o SourceDataLine
			if (line!=null) {
				line.drain();
				line.close();
				line = null;
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public void tocar() {
		if (line == null) {
			//Se a linha e nula (ou seja, a musica nao foi iniciada ou esta parada), toca a musica desde o inicio
			new Thread(this).start();
		}else {
			//Se a linha nao e nula e ela nao esta rodando, quer dizer que ela esta pausada somente
			if (!line.isRunning()) {
				//despausa
				line.start();
			}
		}
	}

	public void pausar() {
		//Interrompe a linha
		line.stop();
	}

	public void parar() {
		//Fecha e anula a linha
		line.close();
		line = null;
	}
}

Se alguém puder ajudar.

Alguma mensagem de erro?

Nenhuma, só fica running…e nada.

O que será que falta?

Desta API que esta usando eu não entendo nada, mas posta o código que starta a thread.
Você já debugou??Fica travado em alguma linha??

Voce esta passando que tipo de arquivo para tocar?
A AudioAPI do java só toca mids e wavs se não me engano.

Se quiser tocar mp3 ou ogg voce precisa de outra biblioteca como o JLayer da JavaZOOM.

No debug não apresenta erros.
Estou tocando arquivos .wav já convertidos em PCM.

Será que está faltando algum laço?
Somente iniciar o e o line.open e line.start não tocaria a música?