madplay命令使用(Linux音乐播放器)

您所在的位置:网站首页 mp3解码器板有时候亮有时不亮 madplay命令使用(Linux音乐播放器)

madplay命令使用(Linux音乐播放器)

2024-07-14 19:41| 来源: 网络整理| 查看: 265

更多资料请点击:我的目录 本篇仅用于记录自己所学知识及应用,代码仍可优化,仅供参考,如果发现有错误的地方,尽管留言于我,谢谢。

madplay命令使用详细参数: -v 获取音乐播放时间 -q 不存在任何打印,但现实警告 -Q 不存在任何打印 –downsample 只采用一半数据 -i 忽略CRC校验错误 -o PATH/xx.wav 可以用来转码,将mp3转为wav,也可以是其他格式。 -a 开启衰减音量 ,增加音量,衰减系统为-175~+18 (当然通过键盘±也可以调整音量) -A 同-a -1 -2 -m -S 分别指左声道,右声道,双声道,立体声 -s 用于seek播放 0:1:10:20 ,seek到1小时,10分钟,20秒时开始播放 -t 用于播放时间设置(定时停止) 0:1:10:20 ,播放到1小时,10分钟,20秒时就停止 -z 用于随机播放列表歌曲 -r, 用于循环播放列表歌曲 -r, --repeat[=MAX] 循环播放无限次或Max次

使用例子:

播放某首歌一次: ./madplay music/1.mp3 播放某首歌(单曲循环): ./madplay music/1.mp3 -r 播放某目录文件下的MP3歌曲一次: ./madplay music/*.mp3 播放某目录文件下的MP3歌曲(列表循环播放): ./madplay music/*.mp3 -r 播放某目录文件下的MP3歌曲(列表随机播放): ./madplay music/*.mp3 -z

程序控制madplay播放,暂停播放,恢复播放,停止播放,关闭播放器的操作

system("madplay music/*.mp3 &"); //利用system函数调用madplay播放器播放music目录下所有的.mp3音乐 system("madplay music/*.mp3 -r &"); //列表歌曲循环播放 system("killall -STOP madplay &"); //利用system函数调用killall命令暂停播放音乐 system("killall -CONT madplay &"); //利用system函数调用killall命令恢复播放音乐 system("killall -9 madplay"); //利用system函数调用killall命令将madplay终止关闭

注意: &为后台运行,如果不加&则为前台播放,将无法对其进行暂停、恢复播放操作

简单程序示例:

int music_play() { printf("成功打开音乐播放器!\n"); //system("madplay music/*.mp3 -z &"); //列表随机播放 system("madplay music/*.mp3 -r &"); //列表循环播放 //设置节点 struct node { char *data; struct node *next; struct node *prev; }; //初始化链表 struct node *list_init(char *newdata) { struct node *head = malloc(sizeof(struct node)); head->data = newdata; head->next = head; head->prev = head; return head; } //创建新节点 struct node *newnode(char *newdata) { struct node *new = malloc(sizeof(struct node)); new->data = newdata; new->next = NULL; new->prev = NULL; } //加入新节点 int addnode(struct node *new,struct node *list) { struct node *p = list; while(p->next != list) { p = p->next; } new->prev = list->prev; new->next = list; list->prev = new; new->prev->next = new; } struct node *list = list_init("1.mp3"); //初始化双向循环链表 char *path = "music"; //music为音乐目录文件名 DIR *dp = opendir(path); struct dirent *p; while(p = readdir(dp)) //遍历目录文件 { if(p->d_type == DT_REG) { if(strstr(p->d_name,".mp3")) //判断是否为.mp3文件 { struct node *new = newnode(p->d_name); //创建新节点 addnode(new,list); //插入新节点 } } } char buf[20]; //用于存放拼接后的字符串 struct node *head = list->next; int num = 0; for(;;) { scanf("%d",&num); if(n == 1) //恢复播放 { n = 0; system("killall -CONT madplay &"); } if(n == 2) //暂停播放 { n = 0; system("killall -STOP madplay &"); } if(n == 3) //下一首 { n = 0; system("killall -9 madplay"); head = head->next; bzero(buf,20); sprintf(buf,"madplay %s/%s &",path,head->data); system(buf); } if(n == 4) //上一首 { n = 0; system("killall -9 madplay"); head = head->prev; bzero(buf,20); sprintf(buf,"madplay %s/%s &",path,head->data); system(buf); } if(n == 5) //退出 { system("killall -9 madplay"); printf("成功退出音乐播放器!\n"); break; } } }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3