资源简介

 能识别本地的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 < strlen(p); 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\player

     文件    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个文件信息

评论

共有 条评论