实现MP3播放器的快进快退_第1页
实现MP3播放器的快进快退_第2页
实现MP3播放器的快进快退_第3页
实现MP3播放器的快进快退_第4页
实现MP3播放器的快进快退_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实现实现 MP3MP3 播放器的快进快退播放器的快进快退 专业班级 专业班级 XXXXXXXXXX 设计者设计者 XXXXXXXXXXXXXXXX 指导老师 指导老师 XXXXXXXXXXXXXX 设计时间 设计时间 XXXXXXXXXXXXXX 一 设计题目一 设计题目 实现 MP3 播放器的快进快退 二 主要指标和要求 二 主要指标和要求 1 指标 open 函数 write 函数 read 函数 设备控制函数 ioctl 结构体 struct wav fmt 以及 fd1 fd2 文件描述符 2 要求 在 linux 环境下 将 home asdf mp3player nuannuan wav 文件读出并写 入声卡设备文件 dev dsp 中 实验结果通过三步实现 第一步 实现声卡的发声 其现象为产生噪声 第二步 实现 MP3 音乐文件的播放 其现象为 nuannuan wav 文件的正常播放 第三步 实现快进快退功能 其现象为按下设定的按键时 音 乐能快进或快退 5 秒 三 方案选择及其工作原理 三 方案选择及其工作原理 1 方案选择 首先在计算机上安装的虚拟机中编程实现 MP3 文件的快进快退功能 然后通过 arm linux gcc rc c arm linux gcc a out 等一系列语句将文件连接到超 级终端 最后由超级终端将文件发送到实验开发板 观察现象完成实验 2 工作原理 程序开始需先定义一个音频控制的结构体 struct wav fmt 和一个异步 端口控制函数 fun 然后通过 open 函数将 home asdf mp3player nuannuan wav 文 件和声卡设备文件 dev dsp 打开 分别赋给 fd1 和 fd2 称其为文件描述符 紧接着 用 read 函数读 fd1 通过声卡设备 ioctl fd2 SNDCTL DSP SETFMT 音频文件结构体定义 struct wav fmt char fiffid 4 int riffsize char rifffmt 4 char fmtid 4 int fmttag short fmttype short nchannels int speed int bpsecond short align short bitspersample struct wav fmt fmt int fun 异步端口控制 int ret struct termios new opts if tcgetattr 0 return 1 new opts c lflag new opts c cc VMIN 0 new opts c cc VTIME 0 if tcsetattr 0 TCSANOW k getchar if k f lseek fd1 44100 2 5 SEEK CUR if k l lseek fd1 44100 2 5 SEEK CUR close fd1 关闭文件 close fd2 五 仿真 调试中遇到的问题 解决的方法以及实验效果 五 仿真 调试中遇到的问题 解决的方法以及实验效果 1 声音的失真 在程序编写完成并正常执行后 输出的声音不是设置的女声而是略 带嘈杂的低沉的声音 经检查并在老师的指导下发现是 ioctl 中第 3 各参数赋值的 错误 他指出我们不能直接将 CHANNELS SPEED 这样的参数赋给 ioctl 而需先将 CHANNELS SPEED 分别赋给变量 a b 再由 a b 赋给 ioctl 这是与 linux 下的 存储结构有关的 更改后能正常发声 2 无法快进快退 在程序中我们用 getchar 语句来实现输入外来控制字符 我的 程序中用 f l 分别实现快进快退 但我们知道 getchar 语句为同步执行 当我执行 f 或 l 程序进入等待状态 并不执行快进快退功能 为解决这个问题 老师给我们提供了异步端口控制函数 fun 在执行 getchar 之前我们先调用这个函 数 这样使得 getchar 能异步执行 运行程序后 按下 f l 能正常实现快进 快退 六 设计体会 六 设计体会 这次的课程设计的实现方式是独特的 由专门的科技人员对我们进行理论知识 的灌输和上机的指导 这种理论与实践相结合的方式让我从这次设计中受益匪浅 尽管在设计中我们遇到很多棘手的问题 但在错误中学到的知识和总结的经验无疑 让我们更加铭记于心 作为大学生 我们在更多时候都是接受理论知识的教育 以 至于在更多时候我们只能纸上谈兵 无法将理论与实践相结合 这次课程设计无疑 给了我们一次很好的动手机会 我们把它当做一次学习和检验学习成果的机会 设 计中我深刻的认识到了自己知识的不足和动手

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论