./a.out .

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<dirent.h>
#include<string.h>
#include<signal.h>

void music_self(void);
void mysignal(int signo);

pid_t pid;
int k=0;
int len;
char str[32][128];

void music_self(void)
{
signal(SIGINT,mysignal);
pid=fork();
if(pid==-1)
{
perror("fork");
exit(-1);
}
if(pid==0)
{
execl("/usr/bin/madplay","madplay",str[k],NULL);
}
}

void mysignal(int signo)
{
system("kill pid");
printf("hello\n");
k++;
if(k==len)
{
k=0;
}
music_self();
}

int main(int argc,char *argv[])
{
DIR *dir;
struct dirent *ent;
char str1[128];
char str2[128];
memset(str,0,sizeof(str));
dir=opendir(argv[1]);
if(NULL==dir)
{
perror("opendir");
return;
}

while(ent=readdir(dir))
{
if(ent->d_type==4)
{
continue;
}
strcpy(str1,ent->d_name);
strcpy(str2,str1+strlen(str1)-4);
if(strcmp(str2,".mp3")==0)
{
sprintf(str[k],"%s/%s",argv[1],ent->d_name);
printf("%s\n",str[k]);
k++;
}
}
closedir(dir);
len=k;
k=0;
while(1)
{
music_self();
waitpid(pid,NULL,0);
k++;
if(k==len)
{
k=0;
}
}
return 0;
}

按ctrl + c 播放下一曲音乐的更多相关文章

  1. C#做音乐播放器时在自动下一曲中报异常的解决办法

    ---------------------- ASP.Net+Unity开发..Net培训.期待与您交流! ---------------------- 在利用Media Player做音乐播放器的时 ...

  2. react.js 实现音乐播放、下一曲、以及删除歌曲(仅播放列表)

    import React, { Component } from 'react'; export default class Music extends Component {   construct ...

  3. Linux 播放网易云音乐(树莓派)

    环境安装sudo apt-get install python-pipsudo apt-get insyall python-dev mpg123sudo pip install Netease-Mu ...

  4. iOS 播放远程网络音乐的核心技术点

    一.前言 这两天做了个小项目涉及到了远程音乐播放,因为第一次做这种音乐项目,边查资料边做,其中涉及到主要技术点有: 如何播放远程网络音乐 如何切换当前正在播放中的音乐资源 如何监听音乐播放的各种状态( ...

  5. zendstudio快捷键复制行Ctrl+Alt+向下无效的解决方法

    今天不断地在百度输入类似"zendstudio快捷键复制行Ctrl+Alt+向下无效"这样的关键字,里面搜索到的内容都是在说系统的显卡驱动Ctrl+Alt+方向键和ZendStud ...

  6. 在iOS微信浏览器中自动播放HTML5 audio(音乐)的2种正确方式

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. Eclipse中快捷键Ctrl + Alt + 向上箭头 或者 Ctrl + Alt + 向下箭头与Windows冲突

    原文地址:https://blog.csdn.net/buaaroid/article/details/50804608 clipse中按ctrl + alt + 向上箭头没有任何反应,按ctrl + ...

  8. mciSendString 多线程播放多首音乐 & 注意事项

    昨天晚上遇到一个问题: 使用 mciSendString  控制播放多首音乐的时候,出现最后一次播放的音乐无法通过 mciSendString ("close mp3") 关闭音乐 ...

  9. JavaScript一个页面中有多个audio标签,其中一个播放结束后自动播放下一个,audio连续播放

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

随机推荐

  1. HDU 1176 免费馅饼(数塔dp)

    一开始被吓到了,后来再仔细一读发现就是一个数塔,没有那么复杂 #include<stdio.h> #include<string.h> #include<algorith ...

  2. Cannot find PHPUnit in include path phpstorm

    This is the way to do it without using composer, and using your global phpunit.Phpunit now comes wit ...

  3. 在CentOS中安装jenkins

    一.检查java是否安装 $ java -version java version "1.6.0_22" OpenJDK Runtime Environment (IcedTea6 ...

  4. ural1471 Distance in the Tree

    Distance in the Tree Time limit: 1.0 secondMemory limit: 64 MB A weighted tree is given. You must fi ...

  5. ural1494 Monobilliards

    Monobilliards Time limit: 1.0 secondMemory limit: 64 MB A monobilliards table set up in a gaming hou ...

  6. C语言常见命名规范

    C语言常见命名规范   1 常见命名规则 比较著名的命名规则首推匈牙利命名法,这种命名方法是由Microsoft程序员查尔斯·西蒙尼(Charles Simonyi) 提出的.其主要思想是“在变量和函 ...

  7. form2js的使用(续BootstrapTable)

    通过收集表单数据,并且转换为json格式,实现表格的查询. 引入插件:不要忘记引入jquery. <script src="${ctx}/assets/plugins/form2js/ ...

  8. Quick Cocos2dx 场景转换问题

    项目结构是这样子的: 主场景代码是这样子的: local MainScene = class("MainScene", function() return display.newS ...

  9. openstack controller ha测试环境搭建记录(十三)——配置cinder(控制节点)

    在任一控制节点创建用户:mysql -u root -pCREATE DATABASE cinder;GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'loc ...

  10. PHP和MySQL Web开发(原书第4版) 高清PDF+源代码

    PHP和MySQL Web开发(原书第4版) 高清PDF+源代码 [日期:2014-08-06] 来源:Linux社区  作者:Linux [字体:大 中 小]     内容简介 <PHP和My ...