资源简介
能识别本地的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\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个文件信息
相关资源
- 西工大C语言实验及考研复试机试
- 猜词游戏 C/C++程序设计
- 数据结构c语言版清华大学严蔚敏pdf
- walksatC语言
- 2D格斗游戏,C语言实现
- MCS-51单片机原理与应用(C语言版.
- C语言程序设计第3版(何钦铭,颜晖主
- 谭浩强c语言PDF版.zip
- c语言附录ASCII表、关键字、结合性、
- C语言程序设计(第三版)-谭浩强.p
- c语言程序设计(谭浩强)(完整版)
- 模拟命令解释器MyShell的设计与实现
- c语言简易飞秋
- 飞机大战C语言游戏代码
- C语言共享单车管理系统
- 最简单的C语言俄罗斯方块
- 数据结构课程程序设计实践运动会分
- 华中科技大学计算机学院C语言实验报
- 坦克大战C语言easyx图形插件源代码
- C语言课设,学生证管理系统
- 《数据结构》C语言版教程
- C语言代码夜夜爱消除
- c语言库函数源代码包含string.h
- C语言读取文件数据,写入内存
- C语言程序设计第二版
- 基于单片机的温控流水灯proteus仿真图
- STM32 RTC+LCD12864 实时时钟和闹钟实验
- C语言教程从入门到精通(含100例)
- 闹钟c语言大一写的智慧闹钟
- 基于HMM语音识别的C语言实现
评论
共有 条评论