[Resolvido] Sincronizar a apresentação da Logo com a uma musica

Olá pessoal, a dúvida é a seguinte, eu tenho o código, postado abaixo, que apresenta uma Logo do Jogo e uma barra de carregamento/progresso.
O que quero fazer e sincronizar uma música de fundo enquanto a barra de progresso carrega…

A barra de progresso está funcionando e o tocar da musica tbem… Só que ao colocar a musica nesse código, ele faz o seguinte: toca a música primeiro depois que carrega
a barra.

Teria como fazer isso simultaneamente(Tocar a musica enquanto a barra carrega)?
Teria que ter 2 Thread, uma para a Barra, já existe, e uma outra para tocar a Música?

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package logo;

import java.awt.Color;
import java.awt.Dimension;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JProgressBar;
import javax.swing.JWindow;
import jogodaforcacliente.DatagramClient;
import org.netbeans.lib.awtextra.AbsoluteConstraints;
import org.netbeans.lib.awtextra.AbsoluteLayout;

/**
 *
 * @author Diego Oliveira Froes
 */
public class Logotipo extends JWindow {

    AbsoluteLayout absoluto;
    AbsoluteConstraints absimagem, absbarra;
    ImageIcon imagem;
    JLabel labelImg;
    JProgressBar barra;

    @SuppressWarnings("CallToThreadStartDuringObjectConstruction")
    public Logotipo() {
        absoluto = new AbsoluteLayout();
        absimagem = new AbsoluteConstraints(0, 0);
        absbarra = new AbsoluteConstraints(0, 320);

        labelImg = new JLabel();
        imagem = new ImageIcon(this.getClass().getResource("../imagens/forca.png"));
        labelImg.setIcon(imagem);

        barra = new JProgressBar();
        barra.setPreferredSize(new Dimension(575, 15));
        barra.setBackground(Color.DARK_GRAY);

        this.getContentPane().setLayout(absoluto);
        this.getContentPane().add(labelImg, absimagem);
        this.getContentPane().add(barra, absbarra);

        new Thread() {

            @Override
            @SuppressWarnings("SleepWhileInLoop")
            public void run() {
                playLogoMusic();

                int i = 0;
                while (i < 101) {
                    barra.setValue(i);
                    i++;
                    try {
                        sleep(30);
                    } catch (InterruptedException ex) {
                        Logger.getLogger(Logotipo.class.getName()).log(Level.SEVERE,
                                null, ex);
                    }
                }

                setVisible(false);

                //DatagramClient dC = new DatagramClient();
                //dC.cliente();
            }
        }.start();

        this.pack();
        this.setVisible(true);
    }

    public static void playLogoMusic() {

        try {
            java.io.InputStream in = (java.io.InputStream) (new java.io.FileInputStream("c:\\music.mp3"));
            javazoom.jl.player.Player p = new javazoom.jl.player.Player(in);
            p.play();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    public static void main(String args[]) {
        new Logotipo();
    }
}

Rode o playLogoMusic numa thread separada, igual você fez com a barra.

Muito Obrigado ViniGodoy, fiz o que você me recomendou e deu certinho… Eu estava em dúvida no funcionamento de Threads em modo simultâneo.
Mais uma vez, muito obrigado pela dica…
Abraço!