executar programa externo em C++

Iniciado por igorqs, 22 de Junho de 2012, 11:38

tópico anterior - próximo tópico

igorqs

Olá pessoal, sou novo no fórum mas já tenho uma duvida.  ;D

Estou programando um jogo da velha em C++, e gostaria de colocar uma musica de fundo. Para isso eu pensei em usar um programa externo, e escolhi o "mpg123"  por rodar no proprio terminal. Só que eu não tinha pensado em um problema.  :-[

O programa ficou assim:

system("mpg123 musica.mp3");
// resto do programa

Só que eh obvio que deu errado, na hora de rodar ele executa o mpg123 e só depois começa o jogo da velha.

Como eu faço para rodar meu programa e ao mesmo tempo tocar as musicas? 

Obrigado pela ajuda.

igorqs

Rá, consegui solucionar o problema.

Eu fiz assim:

system("mpg123 musica.mp3 &");
// resto do programa
system("killall mpg123");

Desculpem ter postado a duvida assim precipitadamente, se o mod quiser retirar o tópico pode fazer.

Obg

fpissarra

Uma alternativa um pouco melhor é usar uma library como a SDL_Mixer (ou SDL_Music). Eis um link com um tutorial interessante aqui.

zekkerj

Citação de: igorqs online 22 de Junho de 2012, 11:38
Olá pessoal, sou novo no fórum mas já tenho uma duvida.  ;D

Estou programando um jogo da velha em C++, e gostaria de colocar uma musica de fundo. Para isso eu pensei em usar um programa externo, e escolhi o "mpg123"  por rodar no proprio terminal. Só que eu não tinha pensado em um problema.  :-[

O programa ficou assim:

system("mpg123 musica.mp3");
// resto do programa

Só que eh obvio que deu errado, na hora de rodar ele executa o mpg123 e só depois começa o jogo da velha.

Como eu faço para rodar meu programa e ao mesmo tempo tocar as musicas? 

Obrigado pela ajuda.

Faça assim:

if( fork()==0 ) {
    system( "comando" );
}
// resto do programa
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D