太原理工大三下学期MP3实验报告.docVIP

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
太原理工大三下学期MP3实验报告

课程设计 课程名称: 物联网传输课程设计 设计名称: MP3音乐播放器 专业班级: 物联14 学号: 201400 学生姓名: 指导教师: 2017年 6月 12日 太原理工大学课程设计任务书 学生姓名 专业班级 物联 课程名称 物联网传输课程设计 设计名称 MP3音乐播放器 设计周数 2 设计 任务 主要 设计 参数 总体概述: 基于madplay库linux应用编程实现音乐播放器 将目录重定向到文件 读文件导入链表 循环进行功能选择 (上一首,下一首,播放,暂停,继续,退出) 退出函数 设计内容 设计要求 循环进行功能选择: 1.播放 2.暂停 3.继续 4.上一首 5.下一首 6.退出 主要参考 资 料 课程PPT, 用man命令查询API, CSDN博客, 百度百科 学生提交 归档文件 封面—任务书—说明书 注: 1.课程设计完成后,学生提交的归档文件应按照:封面—任务书—说明书—图纸的顺序进行装订上交(大张图纸不必装订)。 2.可根据实际内容需要续表,但应保持原格式不变。 指导教师签名: 日期: 设计说明书 1 功能说明: 本次设计是基于madplay库linux应用编程实现了一个音乐播放器。用户可以循环进行功能的选择。主要有6个功能可以选择。1.上一首,2.下一首,3.播放,4.暂停,5.继续,6.退出。 用户使用界面 2)用户操作界面 2.功能设计 步骤: 1.总体概述:基于madplay库linux应用编程实现音乐播放器, 2.准备工作: 2.1 、引言: madplay是一个开源mp3解码库,其对mp3解码算法做了很多优化,性能较好,很多播放器如mplayer、xmms等都是使用这个开源库进行解码的;如果要设计mp3播放器而又不想研究mp3解码算法的话,madplay是个不错的选择。 2.2 、库的使用: 2.1.1、创建一个文件用于存放madplay依赖的库 mkdir mp3lib 2.1.2、将mp3.tar.gz压缩包移动到文件mp3lib下 mv mp3.tar.gz mp3lib 2.1.3、进入mp3lib目录 cd mp3lib 2.1.4、解压mp3.tar.gz压缩包 tar –zxvf mp3.tar.gz mp3.tar.gz压缩包中包括libmad、libid3tag、libz等库 解决方法: 可设置环境变量 ,动态连接器就从这个指定的路径下搜索共享库 export LD_LIBRARY_PATH=../mp3lib 3.1.2、拷贝一个mp3文件 madply 1.mp3 可以播放表示成功 madplay可用 3.2、程序编写 3.2.1、搭写框架 1)将目录重定向到文件 2)读文件导入链表 3)循环进行功能选择 (上一首,下一首,播放,暂停,继续,退出) 4)退出函数 3.2.2、功能实现 3.2.2.0、目录到文件操作 1)创建一个目录song用于存放音乐 mkdir song 2)将目录重定向到文件中,以便之后对文件的读取 程序中调用system(“ls song songfile”); 3.2.2.1、文件到链表操作 struct node { char SongName[1024]; struct node *next; struct node *prev; }; 定义结构体,为双向链表的结点信息,包含字段歌曲名,节点的前后指针域。 思路: 1)打开文件 读取文件数据,并拼接成歌曲的正确路径 2)将路径存入节点p,将p添加入链表。 细节实现 1: open,fgets,sprintf去实现 细节实现2: Node *p = malloc(sizeof(Node)); strcpy(p - SongName,songname); p - next = *head; p - prev = NULL; if(*head) (*head) - prev = p; *head = p; //新的节点成为链表头 详解: 定义一个新的节点指针p,并手动分配空间。 将路径存入节点中路径字段 并将p的next指针 指向链表头 将p的prev指针 指向空 如果此条链表不为空 将头节点的prev指针指向p 最后 让p成为链表头 链表添加成功 3)关闭文件 close

文档评论(0)

xxj1658888 + 关注
实名认证
文档贡献者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档