Linux下使用mpg123实现简单的MP3音乐播放器(记录自己的学习路程)
主要功能及实现:
1,播放,暂停及继续,上一曲下一曲和退出
2,实现顺序循环播放等功能
3,可根据不同格式(.mp3)导入歌曲
完整代码:
#include <stdio.h>
#include <glob.h>
#include <unistd.h>
#include <sys/wait.h>
#include <termios.h>
#include <signal.h>
#include <termios.h>
#include <libgen.h>
#include <stdlib.h>int main()
{int ret = 0,i=0;//记录歌曲int num = 0;char ch = 0;glob_t pglob;//接收返回值,判断子进程是否结束ret = glob("/home/roots/6-8/music/*.mp3", 0, NULL, &pglob);if (ret < 0){perror("glob");return -1;}//打印歌曲名称for (i = 0; i < pglob.gl_pathc; i++){printf("%s\n", basename(pglob.gl_pathv[i]));}// 等待用户按下空格键printf("按下空格键+回车开始播放\n");while (1){ch = getchar();if (ch == ' '){break;}}//创建子进程pid_t pid = fork();while(1){if (pid == 0){system("clear");for (int j = 0; j < pglob.gl_pathc; j++){printf("%s\n", basename(pglob.gl_pathv[j]));}printf("w--暂停播放\n");printf("a--播放上一首\n");printf("s--继续播放\n");printf("d--播放下一首\n");printf("q--退出播放\n");printf("***************正在播放******************\n");printf("%s\n", basename(pglob.gl_pathv[num]));execl("/usr/bin/mpg123", "mpg123","-q", pglob.gl_pathv[num], NULL);}else{// 读取用户输入ch = getchar();if (ch != EOF){if (ch == 'w') // 暂停{kill(pid, 19); // 发送暂停信号}else if (ch == 's') // 继续播放{kill(pid, 18); // 发送继续播放信号}else if (ch == 'a') // 上一首{kill(pid, 9); // 杀死当前进程if (num == 0){num = pglob.gl_pathc - 1;}else{num--;}pid = fork();}else if (ch == 'd') // 下一首{kill(pid, 9); // 杀死当前进程if (num == (pglob.gl_pathc - 1)){num = 0;}else{num++;}pid = fork();}else if (ch == 'q') // 退出{printf("欢迎下次使用\n");kill(pid, 9); // 杀死当前进程system("stty echo");break;}}}}return 0;
}
Linux下使用mpg123实现简单的MP3音乐播放器(记录自己的学习路程)相关推荐
- linux下的网络音乐播放器,Linux_Songbird离开后 Linux下可以替代它的10个音乐播放器推荐,正如我们早先提到的一样, Son - phpStudy...
Songbird离开后 Linux下可以替代它的10个音乐播放器推荐 正如我们早先提到的一样, Songbird 已经离开了Linux羊群而开源的牧草地将变得更加翠绿.但是,Linux将用什么来取代这 ...
- Linux下基于Libmad库的MP3音乐播放器编写
linux下基于Libmad库的MP3音乐播放器编写 libmad是一个开源mp3解码库,其对mp3解码算法做了很多优化,性能较好,很多播放器如mplayer.xmms等都是使用这个开源库进行解码的: ...
- Android开发本地及网络Mp3音乐播放器(十二)创建NetMusicListAdapter、SearchResult显示网络音乐列表
转载请注明出处:http://blog.csdn.net/iwanghang/article/details/51290181 觉得博文有用,请点赞,请留言,请关注,谢谢!~ 实现功能: 实现NetM ...
- C#制作简单的本地音乐播放器(二)—— 显示歌词
此篇文章主要补充 C#制作简单的本地音乐播放器(一) 中的"歌词显示"部分的内容. 页面设计部分 相关内容 本程序使用的歌词文件为lrc格式,lrc是英文lyric(歌词)的缩写, ...
- Android应用开发--MP3音乐播放器Service实现
Android应用开发--MP3音乐播放器Service实现 2013年5月29日简.美音乐播放器开发记录 让网友们久等啦,关于简.美音乐播放器的开发,最重要的Service类总算是要发博了.关于An ...
- Android应用开发--MP3音乐播放器滚动歌词实现
Android应用开发--MP3音乐播放器滚动歌词实现 2013年6月2日 简.美音乐播放器开发记录 -----前话 有网友给我博客评论说,让我借鉴好的Android代码,代码贴出来的时候最好整体先 ...
- 毕业设计 单片机MP3音乐播放器 - 物联网 嵌入式
文章目录 1 简介 2 绪论 2.1 课题背景与目的 3 系统设计 3.1 系统架构 3.2 软件部分设计 3.3 实现效果 3.4 部分相关代码 4 最后 1 简介 Hi,大家好,学长今天向大家介绍 ...
- 毕业设计 嵌入式 MP3音乐播放器设计与实现
文章目录 1 简介 2 绪论 2.1 课题背景与目的 3 系统设计 3.1 系统架构 3.2 软件部分设计 3.3 实现效果 3.4 部分相关代码 4 最后 1 简介 Hi,大家好,学长今天向大家介绍 ...
- stm32毕业设计 单片机MP3音乐播放器
文章目录 1 简介 2 绪论 2.1 课题背景与目的 3 系统设计 3.1 系统架构 3.2 软件部分设计 3.3 实现效果 3.4 部分相关代码 1 简介 Hi,大家好,这里是学长今天向大家介绍一个 ...
最新文章
- ajax formdata 获取表单数据,node处理表单文件,获取formdata的数据
- mysql max connects_mysql max_connections 总是 4190
- mysql数据被截断_有关Mysql数据截断问题的处理方法
- POJ1151-Atlantis【线段树,扫描线,离散化】
- Matlab Compiler路径
- Android 高斯模糊demo
- 思卡乐科技发布SR3系列RFID产品
- mysql 8.0 ga_mysql 8.0 GA发布了
- 凸函数与简森不等式(Jensen's inequality)
- 小米删除了文件无网络无服务器,两部小米手机无网络快速互传文件
- 解决xftp6 要继续使用此程序您必须应用最新的更新或使用新版本
- 解决树莓派4B从USB启动的问题
- 唯有志存高远,方能风行天下
- 虚拟串口VSPD和XCOM的下载+安装+使用
- 服务器修改密码后任务暂停,windows server 2012 改密码后计划任务执行失败
- SSD配置和训练以及遇到的坑
- SAP MM 因物料有负库存导致MMPV开账期失败问题之对策
- 达人评测 赛扬J4105和赛扬N5095选哪个好
- 从游戏中学习和体会用户心理
- C++:开发一个游戏逻辑引擎