事情是这样的,下面这段代码是当点击坐标范围从(100,250)到(150,220)的区域时会播放音乐(这片点击是用于触摸屏的可以忽略,关键是音乐播放了之后,音乐没办法停下来)
if(100<ts.x && ts.x < 250 && 150<ts.y && ts.y <220)//播放音乐
{
printf("music playing\n");
system("madplay music.mp3");
printf("music play finish\n");
}
else if(400<ts.x && ts.x < 570 && 150<ts.y && ts.y <220)//音乐暂停
{
printf("music stopping\n");
system("killall -STOP madplay &");
}
else if(100<ts.x && ts.x < 250 && 320<ts.y && ts.y <390)//音乐继续
{
printf("music continue\n");
system("killall -CONT madplay &");
}
下载到开发板上进行调试的时候发现,点击播放音乐,音乐确实可以播放,控制台打印出了"music playing",但是没有打印出"music play finish”,说明程序在播放音乐时,一直停在system("madplay music.mp3 ")处,无法运行下面的程序,也就无法将音乐暂停。
解决办法:
将下面这个代码
system("madplay music.mp3 ");
改成这样的
system("madplay music.mp3 &");
就可以在播放音乐后,继续运行下面的程序,暂停音乐。但是一旦经过暂停后,只能选择音乐继续,这时再点击播放音乐没有反应的。 |