資源簡介
? 能識別本地的MP3歌曲文件,能根據路徑添加入播放器中。
? 能識別本地的播放列表信息。
? 具有播放列表功能,能根據用戶的需求隨意創建、刪除播放列表。
? 用戶能往指定的播放列表中添加、刪除。添加時,歌曲必須是已經存在的。
? 用戶能查看當前播放器中的所有歌曲。
? 用戶能查看播放器中現有的播放列表信息。
? 用戶能查看指定播放列表下的歌曲信息。
? 能對播放歌曲進行播放、暫停、停止三種操作。
? 具有默認、全部循環、單曲循環、隨機播放等4中播放模式。
? 具有顯示播放器當前狀態功能,能實時顯示播放器當前的播放狀態和播放列表的一些基本信息。
? 具有同步功能,在用戶退出時, 能保存當前的狀態,在下次播放器打開時,能回到退出去前的狀態。
a) 播放文件模塊
主要功能:在指定目錄下搜索所有符合MP3的文件,顯示打印所有文件,和文件相關的功能。
b) 播放列表模塊
主要功能:創建播放列表,添加歌曲至播放播放列表,刪除播放列表,和播放列表相關的功能。
c) 控制模塊
主要功能:顯示一些系統的相關信息,提供命令輸入的接口,和命令顯示相關的功能。
d) 播放模塊
主要功能:播放歌曲,暫停播放,停止播放,播放模式, 和播放相關的功能。

代碼片段和文件信息
#include?
#include?
#include?
#include?
#include?
#include?“control.h“
#include?“file.h“
#include?“playlist.h“
#include?“play.h“
#include?“volume.h“
#define?LEN?100
struct?cmd_info?g_cmd[];
extern?struct?_mp3_head?g_mp3;
extern?struct?play_info?pinfo;
extern?struct?pl_head?plhead;
void?test(void?*agv)
{
printf(“That‘s?a?test?function?!!!\n“);
}
//選擇音樂
void?chmu?(void?*agv)
{
if(agv?==?NULL)
{
printf(“usage?tip:?chmu?[music]\n“);
return;
}
choose_music((char?*)agv);
}
void?demu(void?*agv)
{
if(agv?==?NULL)
{
printf(“usage?tip:?demu?[playlist?name]?[music]\n“);
return;
}
char?*p?*q;
q?=?strtok(agv?“?“);
p?=?q?+?strlen(q)?+?1;
mpp_pl_demu(q?p);
mpp_pl_syncfile(q?0);
}
void?admu(void?*agv)
{
int?i;
if(NULL?==?agv)
{
printf(“usage?tip:?admu?[playlist?name]?[music]\n“);
return;
}
char?*q?*p;
q?=?strtok(agv?“?“);
p?=?q?+?strlen(q)?+?1;
for(i?=?0;?p[i]?==?‘?‘?&&?i? if(i?==?strlen(p))
{
printf(“usage?tip?:?admu?[playlist?name]?[music]\n“);
return;
}
if(!(i?=?mpp_pl_addmu(q?p)))
{
mpp_pl_syncfile(q?0);
printf(“Add?succeed?!\n“);
return;
}
printf(“Add?failed!\n“);
}
void?chpl(void?*agv)
{
if(NULL?==?(char?*)agv)
{
printf(“usage?tip:?vispl?[playlist?name]!\n“);
return;
}
mpp_play_stopmusic();
if?(??choose_playlist(?(char?*)agv?)?==?-2?)
{
system(“clear“);
printf(“\n\n\n\nThis?playlist?is?none?add?music?to?it?and?then?choose?it...!\n“);
printf(“please?choose?a?playlist?which?isn‘t?null?...use?[vipl]?to?see...!\n“);
printf(“...use?[chpl?default]?to?see?the?most?favorite?songs...!\n“);
return;
}
clear(NULL);
}
void?vispl(void?*agv)
{
//?
if(agv?!=?NULL)
{
mpp_pl_travserbyname((char?*)?agv);
return;
}
printf(“usage?tip?:?vispl?[playlist?name]!\n“);
}
void?quit(void?*agv)
{
//?
if(agv?==?NULL)
{
mpp_play_stopmusic();
putchar(‘\n‘);
printf(“exit?player!!!\n“);
putchar(‘\n‘);
exit(0);
}
printf(“No?such?command...!\n“);
}
void?curpl_travser(char?*plname)
{
pl_pointer?ppl?=?plhead.hpl;
while(ppl)
{
if(!strcmp(ppl->plname?plhead.curpl))
break;
ppl?=?ppl->next;
}
int?i?=?0;
PL_MUSIC_S?*?pm?=?ppl->hmu;
while(pm)
{
printf(“???No.%d??%-30s\n“?++i?pm->musicname);
pm?=?pm->next;
}
putchar(‘\n‘);
}
char?*curmode()
{
PLAY_MODE_S?pms?=?pinfo.playmode;
switch(pms)
{
case?PLAY_MODE_DEFAULT:
return?(char?*)(“default“);
case?PLAY_MODE_LOOP:
return?(char?*)(“loop“);
case?PLAY_MODE_LOOPONE:
return?(char?*)(“loopone“);
case?PLAY_MODE_RANDOM:
return?(char?*)(“random“);
default:
break;
}
return?NULL;
}
char?*cursetplay()
{
PLAY_STATUS_S?pss?=?pinfo.paystatus;
switch(pss)
{
case?PLAY_STATUS_PLAY:
return?(char?*)(“play“);
case?PLAY_STATUS_PAUSE:
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????197313??2013-04-22?14:57??mpp\app\depend\pla
?????文件????5054978??2013-04-22?14:57??mpp\app\music\vitas.mp3
?????文件?????????12??2013-04-22?14:57??mpp\app\playlist\b
?????文件??????????4??2013-04-23?08:34??mpp\app\playlist\1
?????文件?????????18??2013-04-23?10:36??mpp\app\playlist\2
?????文件?????????18??2013-05-03?14:32??mpp\app\playlist\a
?????文件??????26649??2013-05-31?15:41??mpp\app\exe
?????文件????????565??2013-04-23?09:52??mpp\include\control.h
?????文件????????866??2013-04-22?14:57??mpp\include\file.h
?????文件???????1024??2013-04-22?20:45??mpp\include\play.h
?????文件???????1467??2013-04-22?21:35??mpp\include\playlist.h
?????文件???????1171??2013-04-23?09:17??mpp\include\volume.h
?????文件??????10010??2013-04-22?22:03??mpp\source\playlist.c
?????文件???????9417??2013-04-23?10:49??mpp\source\control.c
?????文件???????3950??2013-04-22?14:57??mpp\source\file.c
?????文件???????1725??2013-04-23?09:34??mpp\source\main.c
?????文件???????6805??2013-04-23?10:11??mpp\source\play.c
?????文件???????3488??2013-04-23?10:23??mpp\source\file.o
?????文件???????6736??2013-04-23?10:23??mpp\source\playlist.o
?????文件??????11216??2013-04-23?10:49??mpp\source\control.o
?????文件???????5004??2013-04-23?10:23??mpp\source\play.o
?????文件???????1660??2013-04-23?10:23??mpp\source\volume.o
?????文件???????1678??2013-04-23?09:19??mpp\source\volume.c
?????文件???????2680??2013-04-23?10:23??mpp\source\main.o
?????文件???????4096??2013-04-22?14:57??mpp\SI\project.IMB
?????文件????????368??2013-04-22?14:57??mpp\SI\project.IMD
?????文件??????12288??2013-04-23?10:57??mpp\SI\project.IAB
?????文件????????448??2013-04-23?10:57??mpp\SI\project.IAD
?????文件???????3944??2013-05-21?20:04??mpp\SI\project.PR
?????文件??????39556??2013-06-29?16:54??mpp\SI\project.PS
............此處省略20個文件信息
評論
共有 條評論