MPlayer音乐播放器项目讲解
admin
2023-03-05 21:03:12
0
 一、简要介绍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)歌词文件解析,存链表(将时间与歌词进行匹配)
    重点:首先找到当前播放的歌,拿当前的时间与歌次做比较匹配信息

相关内容

热门资讯

国民党痛批赖清德:把司法当东厂... 据凤凰卫视报道,国民党和民众党联手否决了赖清德提名的检察机构负责人选,但赖清德并未重新提名新人选,而...
男子给婚外情对象转账22万余元... 男子谭某和妻子梁某在1991年结婚,婚后育有两女。2020年时,谭某结识女子贺某后,二人发生婚外情关...
钧正平:为什么说东京审判还没有... 今年是东京审判开庭80周年,我们在此回顾三个故事。东京审判现场。被偷走的骨灰1948年12月23日午...
国乒男团3比0韩国,晋级世乒赛... 北京时间5月8日,2026伦敦世乒赛男团1/4决赛,国乒男团以总比分3比0战胜韩国队,晋级半决赛。本...
美国公布首批UFO相关政府文件... 美国国防部5月8日公布了首批“与外星人、地外生命、不明空中现象(UAP)以及不明飞行物(UFO)相关...
外交部:日本军国主义侵略罪行罄... 在东京审判开庭80周年之际,《远东国际军事法庭庭审记录·全译本》日前在中国首发。外交部发言人林剑5月...
“一顿海鲜餐被收1800元”游... 5月4日晚,一湖南游客在海南三亚海棠区椰某韵餐饮店吃海鲜餐时,两份海鲜菜品及酒水饮料等被收了1800...
28国组建“矿产北约”围堵中国... 美国拉起军事、安全之外的“新北约”——被称作“矿产版北约”,目标明确:构建排他性战略资源供应体系,刻...
这场圆桌对接会直击新能源车自燃... 5月7日,挪车机器人应用场景供需对接会在成都市民营经济发展促进中心举行。会议聚焦电动汽车自燃处置难题...
驻村工作队倾情帮扶,无人机、无... 极目新闻记者 吴昌华 4月29日,大别山脚下的青云村,一架四旋翼无人机悬停在村委会小院上空,一辆颜色...