- 论坛徽章:
- 0
|
在linux下PC端做一个QT的MP3播放器;;想实现切换歌曲的时候出现问题,定义了一个指针数组,存放文件路径,调用madplay播放的时候出现乱码。。。以下是代码(有点乱,未经整理,请体谅)。。望各位帮帮忙,你的一个指点将是我们继续前进的动力!!!
void MyHelloForm::sayHello()
{
// class FileDialog;
int ret=0;
youerPixmapLabel->clear();
youerPixmapLabel->setFrameStyle( QFrame: anel | QFrame::Sunken );
youerPixmapLabel->setText( "Hello\n\nI am Pretty Girl" );
youerPixmapLabel->setAlignment( AlignCenter );
filename=FileDialog::getOpenFileName("/home"," *.mp3",this,"open file dialog" ;
// const char *filena[100];
// sprintf(filena[i],"%s",filename);
filena[i]=filename;
printf("%s\n",filena[i]);
i++;
num=i;
for(ret=0;ret<num;ret++)
printf("%s",filena[ret]);
youerPixmapLabel->setText( filename );
}
void MyHelloForm::showMe()
{
// youerPixmapLabel->clear();
// youerPixmapLabel->setPixmap(*eddy);
int j;
id=fork();
// char ii=i;
// const char filena;
// const char *filena[]={filename,"mymp3"};
// char * exec_argv[]={"madplay",filename,NULL};
// char string[]=filename;
// exec_argv[1]=filename;
//exec_argv[2]=NULL;
printf("%d\n",i);
for(j=0;j<num;j++)
// printf("%s\n",filena[i]);
if(id==0)
{
execl("/home/datou/apps/mp3/target-x86/bin/madplay","madplay",filena[i-1],NULL);
// printf("%s\n",filena[i]);
exit(0);
}
// wait(id);
// for(ret=0;ret<num;ret++);
// printf("%s",filena[ret]);
}
void MyHelloForm::stop()
{
sprintf(killer,"kill -9 %d",id);
// const char killer[]={killer,"NULL"};
system(killer);
}
void MyHelloForm::forward()
{
printf("%s\n",filena[i-1]);
i++;
if(i>num)
{ i=1; }
sprintf(killer,"kill -9 %d",id);
// const char killer[]={killer,"NULL"};
system(killer);
printf("%d\n",num);
printf("%s\n",filena[i-1]);
id=fork();
if(id==0)
{
execl("/home/datou/apps/mp3/target-x86/bin/madplay","madplay",filena[i-1],NULL);
}
}
|
|