Executando um arquivo mp3

Amigos do Guj,

Esta semana, pedi ajuda por aqui para rodar um arquivo mp3 dentro do meu programa em java, usando o Winamp, prontalmente fui ajudado pelo instrutor, mestre ou cooperador Abner Rodrigues, o código que ele me passou, funciona muito bem, quando eu escrevo o nome da musica dentro do código, mas quando tentei fazer isso automaticamente atraves de uma seleção que faço numa listagem de uma Jtable, não consigo que o programa execute a musica, a baixo segue o código que tentei fazer funcionar;

private void bt_ouvirmusicaActionPerformed(java.awt.event.ActionEvent evt) {
try {

       txtMusica.setText(txtpmusica.getText());  //Caixa com nome musica.mp3
        nome = txtpmusica.getText()+".mp3";    // nome = Parabéns pra vc.mp3
        Runtime r = Runtime.getRuntime();
        r.exec("cmd /c F:\\MP3\\NACIONAL\\nome"); //desta maneira não funciona
       
    } catch (IOException ex) {
        Logger.getLogger(FrmMusicaPlay.class.getName()).log(Level.SEVERE, null, 
         ex);
    }

    Quando eu coloco o nome da musica diretamente em;

        r.exec("cmd /c F:\\MP3\\NACIONAL\\parabéns pra vc.mp3");  //Assim funciona

O programa executa normalmente, mas para melhorar, gostaria de fazer isso automaticamente e o nome da musica ser colocado atravez de uma lista que posso selecionar uma musica e esta aparece em uma JtextField.

Por ultimo, e depois de várias tentativas, tentei colocar o nome da musica.mp3 em uma variavel, conteudo este igual a do JTextField, mas também não funcionou, simplesmente o programa não executa o r.exec e não acusa nenhum erro. A variavel nome contem o conteudo “Parabéns pra vc.mp3

Alguém pode me ajudar ? Muito obrigado e fiquem com Deus.

Armando

Bom dia!

Do jeito que vc fez, vc passou “nome” como se fosse o nome do arquivo, não usou a variavel que fez acima.

Tenta assim:

    try {
        String nome = txtpmusica.getText();
        Runtime r = Runtime.getRuntime();
        r.exec("cmd /c F:\\MP3\\NACIONAL\\\"" + nome + "\".mp3");
    } catch (Exception e) {
        e.printStackTrace();
    }

O teste que eu fiz não estava executando pq meu arquivo tem muito espaço, aí eu coloquei as aspas entre o nome do arquivo pra funcionar:

 "...\"" + nome + "\"...."

Meu amigo Abner, boa tarde.

Cara, vc é 10 ! Show, funcionou, valeu mesmo.

Muito obrigado, que Deus o proteja e continue te dando sabedoria para ajudar outras pessoas que precisem da sua ajuda.

Armando

1 curtida