MPlayer音乐播放器项目讲解-创新互联
一、简要介绍MPlyer音乐播放器
MPlayer是一款开源多媒体播放器,以GNU通用公共许可证发布。此款软件可在各主流操作系统使用,例如Linux和其他类Unix系统、Windows及Mac OS X系统。
二、在开发板实现MPlayer功能
具体如何实现mute 0 静音,为什么用这个命令不用我们做,我们要做的是在开发板上获取出界面后,按下相应按钮实现相应的功能,即对这个命令的处理和调用。
三、思路
1、画glade界面
2、主函数分为父、子进程
父进程:开启mplayer,用到execlp命令
子进程:(1) 搭GTK框架,创建背景窗口、布局以及控件的获取显示;
(2)写上一首、下一首、暂停的回调函数(g_signal_connect);
(3) 获取歌曲目录信息;
DIR *dir;
struct dirent *dirp;
int i = 0;
char *dd[100]={};
char ll[100]="";
if((dir=opendir("./song"))==NULL)
{
printf("Open dir song fail\n");
exit(1);
}
while((dirp=readdir(dir))!=NULL)
{
song_list[i]=(char*)malloc(sizeof(dirp->d_name)+1);
strcpy(song_list[i],dirp->d_name);
printf("%s\n",song_list[i]);
i++;
a.geshu=i;
printf("%d\n",i);
}
closedir(dir);
(4)音量键
一是if静音还是开启,范围,二是if设置音量大小(有命令)
这些做完算是简单实现切歌功能
3、做歌曲名、歌手、歌曲当前位置、歌曲长度、播放进度显示
线程1:不停发命令,打印到屏幕上,写到父进程里(while(1)循环命令),为了不让打印到电脑上,要重定向到管道中(dup命令)
线程2:不停去管道中读数据,做处理
(1)if语句做判断
(2)sscanf做切割
(3)进行组包
(4)gtk_label_set_text设置label标签的内容,箭头指向(如:gtk_label_set_text(a->label_cur_time,buff))
4、线程3歌词显示
(1)有一个歌词文件
(2)歌词文件解析,存链表(将时间与歌词进行匹配)
重点:首先找到当前播放的歌,拿当前的时间与歌次做比较匹配信息
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
创新互联是一家业务范围包括IDC托管业务,网络空间、主机租用、主机托管,四川、重庆、广东电信服务器租用,西部信息服务器租用,成都网通服务器托管,成都服务器租用,业务范围遍及中国大陆、港澳台以及欧美等多个国家及地区的互联网数据服务公司。当前文章:MPlayer音乐播放器项目讲解-创新互联
网址分享:http://ybzwz.com/article/dpieoc.html