实验10_MP3Player项目

合集下载

音频播放器实验报告

音频播放器实验报告

郑州航空工业管理学院《C#程序设计》考试形式:考查题目:音频播放器专业:计算机学号:姓名:完成日期: 2014-6-5目录目录 (1)1 前言 (2)2 需求分析 (2)2.1要求 (2)2.2任务 (2)2.3运行环境 (3)2.4开发工具 (3)3 概要设计与详细设计 (3)3.1系统流程图 (3)3.2查询函数流程图 (5)4 编码与实现 (7)4.1分析 (7)4.2程序调试及截图 (8)4.3具体代码实现 (12)5 课程设计总结 (14)参考文献 (15)致谢 (15)1 前言音频播放器,是目前使用户选择播放任意格式的音频文件的软件,如酷我、QQ 音乐等。

一般的音频播放器都可以支持MP3、MP4、avi等文件格式的播放。

从目前市场的发展情况来看,MP3无疑占据了音频播放器的绝大部分市场;从屏幕来看,MP3的发展经历了无数次的变更;从存储体来看,种类也颇多,其功能真是五花八门,是其他播放器所无法比拟的。

在此次编程设计的音频播放器是通过Windows Media Player控件来实现的,Windows Media Player是一款Windows系统自带的播放器,支持通过插件增强功能,该软件可以播放MP3、WMA、WAV等格式的文件。

本次课程设计我通过Windows Media Player实现音频播放器的简单设计,可以实现对音频文件的打开、播放、暂停、继续、停止、视频显示等功能。

对于实现添加文件、播放、停止,都是利用CMidi这个类来存放实现这些功能的函数,需要的时候调用就可以。

至于音频播放器以后的路该怎么走,还要看市场的发展情况以及用户的需求,个性化也是MP3等音频播放器所追求的一个目标。

相信未来音频播放器会越来越个性化、功能化、更方便携带。

2 需求分析2.1要求(1)用C#语言实现程序设计;(2)利用结构体进行相关信息处理;(3)画出查询模块的流程图;(4)系统的各个功能模块要求用函数的形式实现;(5)界面友好(良好的人机互交),程序要有注释。

项目(4)-简易MP3播放器设计

项目(4)-简易MP3播放器设计

简易MP3播放器设计一、项目简介MP3播放器从90年代末开始出现,发展到今天已经是一种相当成熟的电子娱乐消费品了。

目前市面上存在着许多的MP3播放器,样式繁多,功能各异。

但它们都脱离不了一个核心,音频解码。

该项目用利用51单片机作为主控,VS1003作为音频解码芯片,再加上SD卡作为MP3的存储媒质,实现一个简易的MP3播放器。

同时可扩展TFT液晶模块制作出一个良好的人机交互界面。

二、项目要求1、支持播放格式为 .mp3的音频文件。

2、支持上一首、下一首、暂停、继续、音量调节、重音低调节。

3、支持单曲循环、全部循环模式。

4、控制方式任意。

5、扩展要求1:利用TFT制作一个人机交互界面。

能够显示音量、音效、音乐列表、播放时间进度等信息。

6、扩展要求2:支持WMA、MIDI、WAV格式的音频文件。

三、项目方案解码方案:音频解码可分为软解码和硬解码。

软解码需要大量的运算,消耗很多的时间与空间资源,因此对处理器的存储容量(ROM和SRAM)以及速度要求都比较高。

目前一般的单片机及ARM7处理器都很难做到对音频软解码。

另外,软解码之后的数据还要送到DAC,经DAC转换后才能输出模拟信号,如果DAC的驱动能力较弱的话还可能需要一个功率放大电路。

而硬解码一般是由专门的解码芯片实现,其优点是速度快、集成度高(内含DAC、功放等电路)、处理器容易控制、解码效果好。

因此在解码上选择与开发板配套的VS1003专用音频解码芯片比较合适。

解码方案确定后,该项目大体的实现思路就是,首先要分开各外设模块实现驱动,如VS1003驱动、SD卡驱动等。

用51单片机作主控,对VS1003、SD卡、串行口、TFT液晶等外设部件进行初始化。

接着根据用户控制来选择功能。

在音乐播放方面,要根据FAT32文件系统原理与MP3文件存储格式来读取MP3文件数据,再把有用音频数据发送到VS1003进行解码后输出。

人机交互界面的设计比较灵活,可根据个人喜好来完成设计。

音乐播放器的实验报告

音乐播放器的实验报告

音乐播放器的实验报告音乐播放器的实验报告引言:音乐是人们生活中不可或缺的一部分,而音乐播放器作为传播音乐的工具,在现代社会中扮演着重要的角色。

本次实验的目的是研究音乐播放器的功能和性能,以及对音乐播放器的使用体验进行评估。

一、功能分析音乐播放器的功能主要包括音频播放、音频格式支持、播放列表管理、音量控制、音效调节等。

通过实验测试,我们发现该音乐播放器在这些方面表现出色。

首先,它支持多种音频格式,包括MP3、WAV、FLAC等,能够满足用户对不同音频格式的需求。

其次,播放器具备良好的播放列表管理功能,用户可以根据自己的喜好创建、编辑和删除播放列表,方便快捷地管理自己的音乐。

此外,音乐播放器还提供了音量控制和音效调节功能,用户可以根据自己的需求来调整音量大小和音频效果,提升音乐的听感。

二、性能测试为了评估音乐播放器的性能,我们进行了多项测试。

首先是音频播放质量测试,我们选择了不同类型的音频文件进行播放,并对比了不同音频播放器的音质表现。

结果显示,该音乐播放器在音频播放质量方面表现出众,音质清晰、细腻,能够还原音频本身的特点。

其次是播放稳定性测试,我们将大量音频文件添加到播放列表中,并进行循环播放测试。

结果显示,音乐播放器在长时间播放过程中没有出现卡顿、崩溃等问题,表现稳定可靠。

最后是资源占用测试,我们对音乐播放器的内存占用和CPU占用进行了测试。

结果显示,该音乐播放器在资源占用方面表现较好,占用资源较少,对设备性能的影响较小。

三、用户体验评估除了功能和性能,用户体验也是评价音乐播放器的重要指标之一。

为了评估用户体验,我们进行了用户调研和使用测试。

调研结果显示,用户对该音乐播放器的界面设计和操作方式较为满意,认为界面简洁、直观,操作便捷。

在使用测试中,用户对音乐播放器的播放速度、响应速度和界面切换速度进行了评估,结果显示,音乐播放器在这些方面表现良好,能够满足用户对流畅使用的需求。

此外,用户还对音乐播放器的搜索功能、歌词显示和背景音乐设置等进行了评价,认为这些功能丰富了用户体验,提升了音乐播放的乐趣。

MP3播放器实验报告

MP3播放器实验报告

基于stm32的MP3播放器课程设计报告指导教师:组员:前言MP3播放器其实就是一个功能特定的小型电脑。

在MP3播放器小小的机身里,拥有MP3播放器存储器(存储卡)、MP3播放器显示器(LCD显示屏)、MP3播放器中央处理器MCU(微控制器)和MP3播放器解码DSP(数字信号处理器)等。

Saehan公司于1998年推出了世界上第一台的MP3播放器——MPMan F10,自从第一台MP3播放器推出以来,MP3播放器市场以极快的速度发展,随着生活水平的提高,人们对消费电子的需求也越来越高。

多功能MP3播放器也受到越来越多人的喜欢,很多年轻人的第一台电子产品就是MP3播放器。

现在,人手一台智能机,但MP3并未消失,电子技术快速的发展和消费者的爱好需求,使得MP3的功能也越来越多,体积越来越小,人们不必在健身的时候还带着手机,只要一个轻便的MP3就能让他们听着音乐运动,满足了用户需求。

系统采用ARM Cortex-M3内核的STM32F103VET6作为微控制器,结合VS1053B音频解码芯片,SD卡存储器,TFT液晶显示屏以及独立按键,,设计并实现了集音乐播放﹑切换、音量控制、SD读卡器等为一体的多功能MP3播放器。

关键词:STM32F103VET6;VS1053B;SD卡;TFT液晶屏;MP3播放器目录1.系统方案 (3)1.1系统结构 (3)1.2组成模块 (3)1.2.1 STM32F103VET6 (3)1.2.2 ATK-VS1053 MP3 MODULE (3)1.2.3 SD卡 (5)1.2.4 TFT屏 (5)2.电路设计 (6)2.1工作原理 (6)2.2电路连接 (8)3.程序设计 (9)3.1程序的组成 (9)4.测试结果 (9)5.结论 (9)6.附录 (9)1.系统方案1.1系统结构本MP3播放器系统主要由STM32F103VET6开发板和高性能音频解码模块ATK-VS1053 MP3 MODULE,显示的TFT屏,以及SD卡组成。

MP3播放器实验

MP3播放器实验

它使用的 IO 为:
VS1053 的 SPI 支持两种模式: 1, VS1002 有效模式 (即新模式) 。 2, VS1001 兼容模式。这里我们仅介绍 VS1002 有效模式(此模式也是 VS1053 的默认模 式) 。 从原理图中,我们看出 VS1053 跟单片机相连的引脚主要有 7 根,他们是: 1) VS_MISO:SPI 输入线 2) VS_MOSI:SPI 输出线 3) VS_SCK:SPI 时钟线 4) VS_XCS:器件片选 5) VS_XDCS:数据片选和字节同步 6) VS_DREQ: 数据请求, 输入总线。 这个信号引脚是用来反馈 VS1053 的 2048 字节 FIFO 是否可以接受数据。如果它为高电平,则 VS1053 可以接收最少 32 字节的 SDI 数据或者接受 SCI 命令。 当流缓冲区太 满和 SCI 命令正在执行的期间,DREQ 会转换到低电平,此时应该 停止想 VS1053 发送新数据和命令。 7) VS_RST:复位端 31.2 VS1053 的操作 VS1053 通信支持 SPI 协议,所以我们使用 STM32 的硬件 SPI 发送接收数据 就可以了, 开发板上面使用的是 STM32 的硬件 SPI1, 具体操作跟之前介绍的 SPI 操作时一样的,这么我们就不详细介绍了。 1. SCI 串行命令写操作 此串行命令接口 SCI 的串行总线协议包括:一个指令字节、一个地址字节和 一个 16 位的数据字,也就是 4 个字节。
MP3 播放器实验
学习目标 1. 复习 STM32 硬件 SPI 2. 学会操作 VS1053 播放音乐 前几年,MP3 曾经风行一时,几乎人手一个,今天我们用开发板自己来实现 一个 MP3 播放器。 31.1 VS1053 简介 VS1053 是继 VS1003 后荷兰 VLSI 公司出品的又一款高性能解码芯片。该 芯片可以实现对 MP3/OGG/WMA/FLAC/WAV/AAC/MIDI 等音频格式的解码, 同 时还可以支持 ADPCM/OGG 等格式的编码, 性能相对以往的 VS1003 提升不少。 开发板上面自带了一个 VS1053 解码芯片,电气原理图为:

电子技术试验之音乐播放器实验报告

电子技术试验之音乐播放器实验报告

电子技术试验之音乐播放器实验报告一、实验目的1、熟练使用MAX+PLUSII软件平台。

2、了解音阶发生原理,学会用硬件描述语言(AHDL)建立音阶发生器模块,并最终编成乐曲,使其可以播放乐曲。

3、下载到JDEE-10试验箱上进行调试和验证音乐播放器的功能。

二、预期功能1、播放一首乐曲。

2、用任意微动开关的按动来控制音乐的播放与停止。

3、数码管两位显示正在播放的音符简谱。

4、点阵模拟五线谱,用十字灯标出正在播放的音符在音阶中的位置。

三、方案设计顶层设计图:模块说明:FREQ**:不同的音高发生器FREQDIVIDER:将高音一分为二产生低音的分频器KEYFORSTOP+stopsign:控制音乐播放与停止的输入端,stopsign为计数器,输出停止与播放的信号counter1:作为音乐节奏的分频器NEW_WORLD:乐曲播放器,曲名为《来自新世界》ED27SEGMENT:数码管控制器,输出显示简谱与高低音counter_disp+DISP:点阵控制器及其输入的扫描时钟信号分频器下面将介绍以上模块的具体实现及功能。

1、分频①音频分频音名与频率的关系:音乐上的十二平均律规定:每两个八度音之间的频率相差一倍。

在这两个八度音之间,分成十二个半音,每两个相领半音的频率比为12√2。

另外还规定,音名A(简谱低音6)的频率为 440Hz。

音名 B 到 C 之间、E 到 F 之间为半音,其余为全音。

这样,可计算得从低音5到高音3之间的每个音名的频率为:(*l表示低音,*h表示高音)∶g:1567.98Hzgl783.99Hzal:880Hz a:1760Hzbl:987.76Hz b:1975.53Hz->2024.77c:1046.50Hz ch:2093Hz->1911.13d:1174.66Hz dh:2349.32Hz->1702.62e:1318.51Hz eh:2637.02Hz->1516.86f:1396.92Hz这些低频信号由高频信号经过分频而得,时钟频率4MHz,而音频ah为1760Hz,则4M/1760=2272,由此设计一个2272进制的计数器,其时钟信号为4MHz,进位信号就是1760Hz。

mp3Player项目设计

mp3Player项目设计

MP3播放器项目详细设计--------八维研修学院(Rocsun)一、项目结构:1.项目名称:AndroidMp3Player2.项目包名:com.roc.androidmp3a.播放主界面、控制台1)AndroidMp3PlayerActivity主界面2)TstActivity…….Com.roc.databaseb.数据库访问1) MusicDAO 对SQLite进行增删改查2) MusicDBHelper SQLite辅助类3) MusicMeta 元数据接口(库名、表名、字段名)Com.roc.musicbeanc.音乐实体Bean1) Music 音乐类的属性Com.roc.utild.工具类1) FileUtil 对文件进行扫描、拷贝、删除、粘贴等2) Mp3Resolver 对媒体库进行读取与保存操作二、技术难点及新知识点1.点按钮实现按钮图片的动态效果2.实现进度条与音乐长度一统一3.媒体库文件的读与保存4.在线歌词的显示三、界面切换与操作流程1.进入主界面(a.动画进入主界面)主界面是一个播放器默认打开上次播放的最后一首歌曲,但不要自动播放,需要点播放按钮后再进行播放2.主界面功能控件有:播放类:前一首、下一首、播放、暂停、停止播放完毕可自动停止播放文件类:a.打开播放文件列表(sqlite)b.从sdcard打开文件c.从媒体库打开文件文件列表页:1)用listView显示文件(可用Menu切换显示为GradView)2)长按一个文件可以弹出文件操作菜单(文件信息、拷贝、粘贴、删除)3)可直接打开SDCard目录4)可直接跳到上级目录四、实现项目步骤:1.建立android项目AndroidMp3Player2.完成主界面的布局文件main.xml设计3.完成文件列表界面filelist.xml的设计4.完成Menu及上下文菜单界面的设计5.建立Com.roc.musicbean包下的Music.java类6.建立文件工具类Com.roc.util包下的FileUtil类五、问题解决技巧:一)解决图片按键点击后背景改变问题:white.setOnTouchListener(touchlistener);backward.setOnTouchListener(touchlistener);play.setOnTouchListener(touchlistener);stop.setOnTouchListener(touchlistener);forward.setOnTouchListener(touchlistener);/*触摸屏点击事件*/OnTouchListener touchlistener=new OnTouchListener() {public boolean onTouch(View v, MotionEvent event) {if(event.getAction()==MotionEvent.ACTION_DOWN){//按下触摸屏,事件为0switch(v.getId()){case R.id.backward:backward.setImageResource(R.drawable.backwardpress);//----------break;case R.id.forward:forward.setImageResource(R.drawable.forwardpress);//----------break;case R.id.play:play.setImageResource(R.drawable.playpress);break;case R.id.stop:stop.setImageResource(R.drawable.stoppress);break;case R.id.white:white.setImageResource(R.drawable.whitepress);break;}}else if(event.getAction()==MotionEvent.ACTION_UP){//向上抬起手为,事件为1switch(v.getId()){case R.id.backward:backward.setImageResource(R.drawable.backward);//----------break;case R.id.forward:forward.setImageResource(R.drawable.forward);//----------break;case R.id.play:play.setImageResource(R.drawable.play);break;case R.id.stop:stop.setImageResource(R.drawable.stop);break;case R.id.white:white.setImageResource(R.drawable.white);break;}}return false;//false OnClick事件才可用,为true时OnClick不能用}};二)解决不用Activity来切换两个界面:<FrameLayoutandroid:id="@+id/player"android:layout_width="match_parent"android:layout_height="match_parent"></FrameLayout><FrameLayoutandroid:id="@+id/frame_list"android:layout_width="match_parent"android:layout_height="match_parent"android:visibility="gone"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"/><ListViewandroid:id="@+id/filelist"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/saks"/></FrameLayout>三)解决在第二个界面时,点back按键返回第一个界面,而在第一个界面则点击可退出程序的问题:/*在列表页点back按钮返回到播放页面,(或通过前一个方法点列表进行播放并返回到播放页面)*/@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if(keyCode==KeyEvent.KEYCODE_BACK){if(frame_list.getVisibility()==View.VISIBLE){frame_list.setVisibility(View.GONE);frame_player.setVisibility(View.VISIBLE);return false;//---------------!不退出程序}}return super.onKeyDown(keyCode, event);//用它会同时退出程序}四)解决进度条与歌曲进度一至问题Asdfsadfa五)分析播放状态1)MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK200 (0x000000c8)The video is streamed and its container is not valid for progressive playbacki.e the video's index (e.g moov atom) is not at the start of the file.2)MEDIA_ERROR_SERVER_DIED 100 (0x00000064)Media server died.3)MEDIA_INFO_VIDEO_TRACK_LAGGING 700 (0x000002bc)The video is too complex for the decoder: it can't decode frames fast enough.4)MEDIA_INFO_BUFFERING_START 701 (0x000002bd)MediaPlayer is temporarily pausing playback internally in order to buffermore data5)MEDIA_INFO_BUFFERING_END 702 (0x000002be)MediaPlayer is resuming playback after filling buffers.6)MEDIA_INFO_BAD_INTERLEAVING 800 (0x00000320)Bad interleaving means that a media has been improperly interleaved or notinterleaved at all, e.g has all the video samples first then all the audio ones.7)MEDIA_INFO_NOT_SEEKABLE 801 (0x00000321)The media cannot be seeked (e.g live stream)8)MEDIA_INFO_METADATA_UPDATE 802 (0x00000322)A new set of metadata is available.9)MEDIA_INFO_UNKNOWN 1 (0x00000001)Unspecified media player info.未指定媒体文件10)MEDIA_ERROR_UNKNOWN 1 (0x00000001)Unspecified media player error.六)Asdfsa。

音乐播放器实验报告

音乐播放器实验报告

音乐播放器实验报告音乐播放器实验报告一、引言音乐是人们生活中不可或缺的一部分,而音乐播放器则是我们享受音乐的重要工具。

本次实验旨在研究音乐播放器的功能和性能,以及对音乐播放器进行一系列的测试和评估。

二、实验目的1. 了解音乐播放器的基本原理和功能;2. 掌握音乐播放器的使用方法和操作技巧;3. 对音乐播放器进行性能测试和评估。

三、实验方法1. 设备准备:准备一台音乐播放器和一些音乐文件;2. 功能测试:测试音乐播放器的基本功能,如播放、暂停、快进、快退等;3. 音质测试:通过耳机或外部音箱,对音乐播放器的音质进行评估;4. 文件格式测试:测试音乐播放器对不同文件格式的支持情况;5. 电池续航测试:测试音乐播放器的电池续航能力;6. 操作便捷性测试:测试音乐播放器的操作界面、按键布局和易用性。

四、实验结果与分析1. 功能测试结果:经过测试,音乐播放器的基本功能均正常运行,包括播放、暂停、快进、快退等。

播放器的响应速度也较快,用户体验良好。

2. 音质测试结果:通过与其他音响设备进行对比测试,音乐播放器的音质表现出色,音质清晰、音量适中,能够满足大多数用户的需求。

3. 文件格式测试结果:音乐播放器支持多种音频文件格式,如MP3、WAV、FLAC等,能够满足用户对不同格式音乐文件的播放需求。

4. 电池续航测试结果:音乐播放器的电池续航能力较为出色,经过连续播放测试,一次充满电的电池能够支持数小时的音乐播放时间,满足用户长时间使用的需求。

5. 操作便捷性测试结果:音乐播放器的操作界面简洁明了,按键布局合理,用户可以轻松上手。

同时,播放器的菜单操作也较为便捷,用户可以快速找到所需的音乐文件。

五、结论通过本次实验,我们对音乐播放器的功能和性能进行了全面的测试和评估。

实验结果表明,音乐播放器具备良好的音质、稳定的功能和操作便捷性,能够满足用户对音乐播放的需求。

然而,我们也注意到音乐播放器在文件格式支持方面还有一些不足,需要进一步改进和优化。

Mp3播放器项目办法实践

Mp3播放器项目办法实践

欢迎阅读Mp3播放器项目项目功能简介:环境配置:服务器:tomcatXML文件:resources.xml(用来记录服务器中所有歌曲信息)Mp3文件和LRC文件1、将resources.xml文件、Mp3文件和LRC文件都放置到tomcat-----webapps----Mp3.2、在tomcat-----webapps----Mp3中建立WEB-INF文件夹(添加配置文件web.xml)3、在eclipse中启动tomcat,并在浏览器中实验是否能正确访问到以上文件()注意:每次启动eclipse后要运行这个程序的话,别忘了启动tomcat啊!否则读取不了服务器中的Mp3列表的。

第一集:实现Mp3文件列表的显示--------点击menu-------出现更新列表按钮,点击更新列表按钮,可以显示服务器中所有的歌曲信息功能分解:1、menu按钮显示2、从服务器下载resources.xml3、用SAX方法解析resources.xml:①ContentHandler类的设计;②SAX解析;功能实现:1、创建类Mp3ListActivity重写回调函数public boolean onCreateOptionsMenu(Menu menu){} 实现menu按钮显示功能:public boolean onCreateOptionsMenu(Menu menu) {return super.onCreateOptionsMenu(menu);}注意点:在类中,元素的ID最好定义一个常量来代替实际的int型数据,以便修改。

如:UPDATE ABOUT2、创建HttpDownloader类,实现xml文本文件的下载功能:import .*;import java.io.*;public class HttpDownloader {public InputStream getInput(URL url){HttpURLConnection httpconn=null;InputStream input = null;try {httpconn=(HttpURLConnection)url.openConnection();input=httpconn.getInputStream();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}return input;}public String textDownload(String urlStr) {URL url;InputStream input = null;StringBuffer sb = new StringBuffer();String line = null;BufferedReader buffer = null;try {url = new URL(urlStr);input=getInput(url);buffer = new BufferedReader(new InputStreamReader(input,"gb2312"));while ((line = buffer.readLine()) != null) {sb.append(line);}//注意:此处一定要用一个line进行append,否则会读取数据不完整//注意:记得将InputStreamReader中的编码设置为"gb2312",否则不可读取中文} catch (Exception e) {e.printStackTrace();} finally {try {buffer.close();} catch (Exception e) {e.printStackTrace();}}return sb.toString();}}注意:要在AndroidManifest中添加访问internet的权限:3、创建Mp3ListContentHandler类,实现ContentHandler类的设计,以便xml的解析用。

音乐播放学生实验报告

音乐播放学生实验报告

音乐播放学生实验报告实验目的本实验旨在通过设计一个音乐播放器的实现,加深学生对嵌入式系统的了解,并学习如何利用硬件和软件协同工作来完成一个综合性的项目。

实验器材和软件1. STM32F103C8T6开发板2. USB接口3. 3.5mm音频接口4. TFT彩屏5. 杜邦线、导线、音频线实验原理本音乐播放器实验基于STM32F103C8T6开发板,通过连接TFT彩屏显示音乐文件列表,通过调用库函数实现音乐播放与控制。

实验步骤步骤一: 准备工作1. 将开发板通过USB接口连接到电脑上,并安装开发环境和相关驱动程序。

2. 连接3.5mm音频接口和音频线。

步骤二: 硬件连接1. 将TFT彩屏与开发板通过杜邦线连接起来,确保连接稳固可靠。

步骤三: 创建音乐播放程序1. 在开发环境中新建一个工程,选择合适的开发板型号;2. 配置硬件参数,包括打开音频接口、TFT彩屏以及相应的引脚连接;3. 导入音乐文件,并将其添加到工程中;4. 编写代码实现音乐播放器的功能,包括音乐文件的读取、解码和输出控制;可以使用库函数来实现这些功能;5. 对代码进行调试和测试,确保音乐播放器的各项功能正常运行;6. 将编写完成的程序下载到开发板中。

步骤四: 运行实验1. 将音乐播放器开启,并选择所需播放的音乐文件;2. 通过TFT彩屏显示音乐文件列表,并提供相应的操作选项;3. 在选中音乐文件后,点击播放按钮,实现音乐的播放;4. 可以通过按钮或触摸屏实现音乐的暂停、停止、上一曲、下一曲等控制功能。

实验结果与分析通过本次实验,我成功地实现了一个音乐播放器,并验证了其正常工作。

音乐播放器具有可靠的功能,可以播放、暂停、停止音乐,并可以切换上一曲、下一曲。

通过TFT彩屏,可以显示当前播放的音乐文件列表,方便用户选择不同的音乐文件。

实验总结通过本次实验,我对嵌入式系统的原理和应用有了更深入的了解。

通过硬件和软件的协同工作,我成功地完成了一个音乐播放器的设计与实现。

音乐播放器的实验报告

音乐播放器的实验报告

一、实验目的1. 熟悉音乐播放器的基本原理和设计方法。

2. 掌握音乐播放器软件的开发流程和关键技术。

3. 培养学生的动手实践能力和团队协作精神。

二、实验环境1. 操作系统:Windows 102. 开发工具:Java Development Kit (JDK) 1.83. 开发环境:Eclipse IDE for Java Developers4. 音乐格式:MP3、WAV等三、实验内容1. 音乐播放器功能需求分析2. 音乐播放器系统设计3. 音乐播放器软件实现4. 音乐播放器测试与优化四、实验步骤1. 功能需求分析音乐播放器应具备以下功能:(1)播放音乐:支持MP3、WAV等音乐格式;(2)播放列表:支持添加、删除、排序音乐列表;(3)音量控制:支持音量调节;(4)播放模式:支持顺序播放、随机播放、单曲循环;(5)播放进度:显示当前播放时间和总时长;(6)播放界面:简洁、美观、易用。

2. 系统设计(1)模块划分音乐播放器系统分为以下模块:①音乐播放模块:负责播放音乐、控制播放进度、音量等;②播放列表模块:负责管理音乐列表、添加、删除、排序音乐;③用户界面模块:负责显示播放界面、交互操作等。

(2)技术选型①音乐播放模块:采用Java Media Framework (JMF) 进行音乐播放;②播放列表模块:使用ArrayList存储音乐信息;③用户界面模块:采用Swing组件实现。

3. 软件实现(1)音乐播放模块①导入JMF库,创建播放器实例;②设置播放器播放源(音乐文件);③实现播放、暂停、停止、音量调节等功能;④实现播放进度显示。

(2)播放列表模块①创建播放列表类,继承ArrayList;②添加、删除、排序音乐列表;③实现音乐列表的遍历和查找。

(3)用户界面模块①设计播放界面布局,包括播放按钮、进度条、音量条等;②实现播放器与用户界面的交互操作;③实现播放器功能的调用。

4. 测试与优化(1)功能测试①测试播放音乐功能,确保支持多种音乐格式;②测试播放列表功能,确保添加、删除、排序操作正常;③测试播放模式功能,确保顺序播放、随机播放、单曲循环正常;④测试音量控制功能,确保音量调节正常;⑤测试播放进度显示功能,确保播放时间与总时长准确。

音乐播放器实验报告

音乐播放器实验报告

防灾科技学院实习报告书专业信息管理与信息系统系别灾害信息工程系报告题目音乐播放器的设计与实现报告人 ** 班级 **指导教师 *** 带队教师 ***实习时间 7.2-7.16 实习单位 4#501教务处监制目录目录 (2)1、实习题目 (3)2、实习目的 (3)3、实习所需条件 (3)3.1硬件需求 (3)3.2 软件需求 (3)4、实习内容 (4)5、实习步骤 (4)5.1需求分析 (4)5.1.1实验说明 (4)5.1.2实验步骤 (5)5.2面向对象的分析 (5)5.2.1实验说明 (5)5.3面向对象的设计 (6)5.3.1 界面设计 (6)5.4系统实现 (14)5.4.1音乐盒功能一:添加文件 (14)5.4.2音乐盒功能二:删除文件 (15)5.4.3 音乐盒功能三:编辑功能 (16)5.4.4音乐盒功能四:播放模式 (18)5.4.5音乐盒功能五:皮肤功能 (19)5.4.6音乐盒功能六:界面 (20)5.4.7音乐盒功能七:搜索功能 (21)5.4.8音乐盒部分其他功能 (23)5.5系统测试 (23)5.5.1 软件安装打包 (23)5.5.2 功能测试 (26)6、实训心得 (26)7、代码实现所有功能 (27)实习题目:音乐播放器设计与实现音乐盒的制作,为能够满足一般用户的需求,能够实现能够打开格式为mpg; avi; wma; mov; wav; mp2; mp3的音乐文件,音乐的播放,暂停,上一首,下一首,在不同播放模式(顺序播放,单曲循环,列表循环)下的自动播放,搜索在列表存在的歌曲,以及搜索网络歌曲.(在GOOGLE音乐里搜索)。

再者,界面的皮肤设置,透明度,鼠标的样式设计也是播放器制作的一大模块。

2、实习目的综合运用《面向对象程序设计》课程基础理论知识,完成学生音乐播放器的设计与开发工作。

使学生熟悉Windows应用程序开发的基本流程;熟练掌握软件需求分析方法和需求建模工具;熟练掌握面向对象的分析和设计技术;熟练掌握面向对象语言的基本语法和高级特性;3、实习所需条件3.1硬件需求每人一台高性能计算机,要求2G以上内存、双核CPU或更高配置。

应用电子技术专业(MP3播放器制作》项目教学设计与实施

应用电子技术专业(MP3播放器制作》项目教学设计与实施

MA X 3 2 3 2等一批元器件及专业厂家制作的 MP 3电路板。 Mp 3 制作利用 的设备有锡膏 印刷 机 、 再 流焊机 、 电脑 、 电源
4 项 目实施
4 . 1 创设情境 、 引入项 目 由生 活中学生经常边走边 听 m p 3歌曲视频 .引 出 m p 3设 备制作 。介绍本项 目训练 的知识 目标 、 技能 目标 、 方法 目标和情 感 目标 。
根据 MP 3播放器 制作 过程 , 设 计成 4个 子项 目, 项 目教学
时 间 2周 。 3 项 目准 备 购置 A S 1 1 1 7 、 A T 8 X C 5 1 S N D 1 C 、 C S 4 3 3 0 、 L MV 3 5 8 、 MA X 8 5 6 、
及应用 电子技 术专业培养 目标 , 针 对电子产 品制造 、 维修 、 销售
企业 , 培养生产 、 管理 、 服务第一线 , 能从 事 电子产 品工艺设计 、 产线作业 、 生产设备 的维护与 维修 、 电子产 品生产 的质量监督 与 管理 、售 后的技术支持 以及相关 的采购与销售等工作 的岗位要 求, 将 电子企业反馈 的 : 常用元器件识别 、 焊接技 术 、 集成运放 的 应用 、 音频放大 电路 、 数字接 口芯片 、 电路的识别 与设 计 、 查 阅芯 片使用手册及相关文献资料作为项 目的训练 目标 .考虑 到本专 业学生 已经具有模拟 电子 、 数字 电路 、 单片机 的基 本知识 , 具 有 P r o t e l 电子线路基本设计能力 ,以及 MP 3 播放 器在学生 中的流 等。
培养学 生对 电子产 品所使 用技术 的关注 度 ,提 高学 生兴 趣, 促进学生 自主学 习 、 能动学 习、 合作学习 , 培养 综合 利用所学 知识分析 、 解决实际问题的能力。

实验实训报告音乐播放器

实验实训报告音乐播放器

一、实验目的1. 了解音乐播放器的基本原理和组成。

2. 掌握音乐播放器的电路设计方法。

3. 熟悉音乐播放器中常用元器件的性能和应用。

4. 提高动手能力和实际操作技能。

二、实验原理音乐播放器是一种将数字音频信号转换为模拟音频信号,并通过扬声器播放出来的设备。

其基本原理如下:1. 数字音频信号:音乐播放器接收的数字音频信号通常为MP3、WMA等格式,这些格式经过压缩处理后存储在存储介质上。

2. 数字信号解码:音乐播放器内部有一个数字信号解码器,将数字音频信号解码成模拟音频信号。

3. 模拟信号放大:解码后的模拟音频信号需要经过放大器放大,以便驱动扬声器发声。

4. 扬声器发声:放大后的模拟音频信号通过扬声器发声,实现音乐播放。

三、实验内容1. 音乐播放器电路设计2. 元器件选型与测试3. 音乐播放器组装与调试四、实验步骤1. 音乐播放器电路设计(1)确定音乐播放器功能:根据需求确定音乐播放器功能,如播放、暂停、切换曲目等。

(2)选择主控芯片:根据功能需求选择合适的主控芯片,如ESP8266、STM32等。

(3)设计电路原理图:根据主控芯片和功能需求,设计电路原理图,包括数字信号解码、模拟信号放大、按键、显示屏等模块。

(4)绘制PCB板图:根据电路原理图,绘制PCB板图,确定元器件布局和走线。

2. 元器件选型与测试(1)主控芯片:根据电路设计,选择合适的主控芯片,如ESP8266。

(2)数字信号解码芯片:根据电路设计,选择合适的数字信号解码芯片,如DAC芯片。

(3)模拟信号放大芯片:根据电路设计,选择合适的模拟信号放大芯片,如运算放大器。

(4)按键、显示屏等元器件:根据电路设计,选择合适的按键、显示屏等元器件。

(5)测试元器件:对所选元器件进行测试,确保其性能符合设计要求。

3. 音乐播放器组装与调试(1)焊接PCB板:根据PCB板图,焊接元器件,完成音乐播放器组装。

(2)调试电路:检查电路连接是否正确,调整电路参数,确保电路正常工作。

android实验报告MP3播放器

android实验报告MP3播放器
public void onClick(View v) {
if(mItemListener!=null){
mItemListener.onDownLoad(song);
}
}
});
viewHolder.ibtn_web_list_item_download.setFocusable(false);
viewHolder.ibtn_web_list_item_download.setFocusableInTouchMode(false);
private RadioGroup radiogroup;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(yout.tabhost_list);
4、掌握远程服务的绑定和调用方法
5、了解AIDL语言的用途和语法
【实验内容】
开发简易音乐播放程序,用后台服务功能实现音乐播放、暂停、切换等基本功能。要求分别以启动方式和绑定方式管理后台服务。
【实验设备】
安装配置了安卓组件的windows操作系统
【四、实验过程、数据和实验结果记录】
实验设计方案(实验方法、步骤、操作过程、设计型实验、实验数据记录表格):
viewHolder.ibtn_web_list_item_download=(Button)convertView.findViewById(R.id.ibtnonvertView.setTag(viewHolder);
}else{
viewHolder=(ViewHolder)convertView.getTag();

音乐播放器实验报告

音乐播放器实验报告

实验报告课程名称:数字系统设计实验1 指导老师:成绩:__________________ 实验名称:音乐播放实验实验类型:设计型同组学生姓名:_ 无一、实验目的和要求(必填)二、实验内容和原理(必填)三、主要仪器设备(必填)四、操作方法和实验步骤五、实验数据记录和处理六、实验结果与分析(必填)七、讨论、心得一、实验目的和要求1、掌握音符产生的方法,了解DDS技术的应用。

2、了解AC97音频接口电路的应用。

3、掌握系统“自顶而下”的设计方法。

二、实验内容和原理i实验内容:设计一个音乐播放器ii实验原理:系统划分为主控制器(mcu)、乐曲读取(song_reader)、音符播放器(note_player)、AC97音频接口(codec_conditioner)和ac97_if五个子模块。

系统图如下:mcu接收按键信息,通知song_reader是否要播放(play)以及播放播放哪一首歌曲(song)。

song_reader模块根据mcu要求逐个取出音符{note,duration}送给note_player,乐曲播放完毕回复(song_done)给mcu。

note_player接收音符后以48kHz速率送出该音符的正弦波样品给AV97音频接口模块。

当一个音符播放结束,向song_reader回复note_done。

codec_conditioner、ac97_if负责与AC97接口工作。

另外,按键处理模块完成输入同步化、防颤动和脉冲变换等功能。

三、主要仪器设备带modelsim和ISE 的PC机,XUP Virtex-II Pro 开发系统一套四、设计过程1.音符播放器(note_player)的设计主要任务有:●从song_reader模块接收所需播放的音符信息{note,duration};●根据note值找出DDS的相位增量;●以48khz的速率从sine rom取出正弦样品送给AC97接口模块;●当一个音符播放完毕,向song_rom模块索取新的音符。

实训报告——基于单片机的MP3播放器

实训报告——基于单片机的MP3播放器

基于单片机的MP3播放器设计沈阳理工大学电子信息科学与技术张良摘要MP3播放器以其小巧的体积、强大的功能、优异的音质倍受人们的青睐。

如果把它嵌入到我们的单片机系统中,实现音频输出,那么对系统的增色是不言而喻的。

单独拿单片机来说,要解码MP3文件,是不可能的,因为从处理速度和资源各个方面都是不能满足要求的。

所以要依赖于专用MP3解码芯片,而单片机要作的就是对其进行控制。

这里我们采用芬兰VLSI公司出品的VS1003实现MP3的解码,以STC公司生产的高性能单片机stc12le5a60s2作为控制芯片,并加以按键,遥控,lcd液晶显示等作为人机交互界面,制作出MP3播放器。

关键词:单片机解码vs1003AbstractMP3 player with its compact size, powerful features, excellent sound quality have become people of all ages. If you embed it into our SCM system for audio output, then the system is self-evident grace. Take a single microcontroller, to decode MP3 files, it is impossible, because in all aspects of processing speed and resource requirements are not met. So to rely on dedicated MP3 decoder chip, while the microcontroller to do is to control it. Here we use the Finnish company produced VLSI VS1003 MP3 decoder implemented to STC company produces high-performance microcontroller stc12le5a60s2 as the control chip, and make buttons, remote control , LCD such as man-machine interface, making a MP3 player.Keywords:MCU decoder vs1003目录1 引言 (1)1.1需求分析 (1)1.2设计构思 (1)2 总体设计 (1)2.1总体思路 (1)2.2模块连接图 (2)2.3 控制流程图 (3)3 详细设计 (4)3.1主要通讯方式 (4)3.1.1 SPI简介 (4)3.1.2 接口信号 (4)3.2 FAT32文件系统 (6)3.2.1 DBR (6)3.2.2 FAT (7)3.2.3 扇区 (7)3.2.4 簇 (7)3.3音频解码芯片VS1003及SD卡模块 (8)3.3.1 VS1003 特性 (8)3.3.2 VS1003概述 (8)3.3.3 VS1003通信模式 (9)3.3.4 SCI 串行命令接口协议 (10)3.3.5 SD卡模块 (12)3.4软件实现方法 (12)4 系统调试及分析 (13)4.1原理图 (13)4.2实物图 (14)4.3测试图 (15)5 心得体会 (16)6 参考文献 (17)7 附录 (18)7.1部分程序代码 (18)1引言1.1需求分析Mp3播放器以其以其小巧的体积、强大的功能、优异的音质的特点而深受大众喜爱,在年轻人中广泛流行,而使用单片机制作一款MP3则具有低成本,高品质的特点,同时也是对学习单片机的一次不小的挑战,可以利用这次实践的机会提高自己对单片机编程的能力和经验,对充分学习单片机嵌入式系统编程很大的帮助。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验十:MP3Player项目一、实验目的通过实验让同学们将已有的知识串联起来,增强代码理解和调试能力。

二、项目功能1.解析XML文件获得MP3文件名、大小、下载网址、LRC文件名、下载地址;2.根据第一步解析到的网址,用户点击相应文件下载MP3和LRC文件放在SDcard上mp3目录下;3.获取本地已经下载mp3目录;4.点击相应的mp3文件,播放MP3文件并同时显示歌词。

三、实验步骤项目界面:点击任意歌曲:这个界面的下面三个按钮分别是“播放”、“暂停”、“停止”,点击播放按钮后播放下载到本地的音乐,并同步显示歌词。

1、创建项目新建一个Android工程命名为Mp3Player,目录结构如下图:(1)MainActivity是启动类,对应的布局文件为activity_main.xml;(2)resources.xml文件是mp3文件的配置文件内容格式如下:(3)Activity结尾的文件是界面Activity,同样以Service结尾的文件是Service是后来服务,用来处理耗时较长的操作。

(4)FileUtils.java和HttpDownloader和实验8里面的功能一样都是用来下载文件至SDCard上,可以直接拷贝过来修改下使用;(5)AppConstant类是应用程序常量类,具体内容如下:(6)Mp3Info实现Serializable接口,主要为了在不同的Activity和service之间进行传递,它还拥有成员变量为:并根据私有的成员变量生成set和get方法,除此之外在该类中增加两个方法:•public String getMp3NameTrimed(){}返回mp3Name去掉.mp3后的字符串;•public String toString() {} 将成员变量连成字符串以供调试输出。

2、修改AndroidManifest.xml文件所有的service和activity必须在该文件中注册:如果在调试信息中activity或service没有找到一般是没有在配置文件中注册和实验8一样在配置文件中增加权限网络访问权限和写SD卡权限:3、MainActivity文件编写该类继承TabActivity,在onCreate函数中增加两个tab页,增加方法参考书本88页的代码,但是跳转的类分别设置为RemoteMp3ListActivity和LocalMp3ListActivity。

该activity的布局文件为activity_main.xml,和书本88-89页的布局文件一样,唯一的区别是在TabHost标签中增加一个属性android:background="@drawable/background"4、RemoteMp3ListActivity文件的编写该类继承ListActivity,布局文件名称为mp3_list.xml,布局文件的内容为:该类有两个成员变量:mp3Infos是存放resources.xml解析出的结果的,代码:mp3Infos = parseResources();parseResources方法的代码参考书本194页代码自行完成;余下的代码:buildSimpleAdapter的代码是将mp3Infos适配到界面,具体代码如下:这个里面使用到了一个布局文件mp3info_item.xml,用来指定ListView里面的列的属性:同时该类还要实现单击事件,点击一个选项后根据xml文件配置的http路径下载歌曲:因为该类本身是继承ListActivity所以该事件不需要绑定,只需要实现该方法就能实现单击事件。

5、DownloadService的编写从上面的代码看出这个类是一个后台服务,在onStartCommand中获取传递来的Intent:后面请模仿实验八内容根据mp3Info中的mp3下载地址、文件名称、LRC的名称和下载地址下载mp3和对应的lrc,下载成功可以弹出toast提示成功,否则提示文件存在或下载失败。

Toast的实现方法供参考,在DownloadService中定义两个成员变量,这里注意toast方法是静态的,所以在HttpDownloader中下载成功后直接使用:6、LocalMp3ListActivity编写该类继承了ListActivity,布局文件也是mp3_list.xml,该类有两个成员变量用来保存从网络下载的mp3文件名、大小、lrc文件名和大小,实现代码:FileUtils中的代码如下所示:其他如何将mp3Infos映射到界面的实现代码和Mp3ListActivity中的buildSimpleAdapter一样,不再赘述。

点击界面中的任何一栏,转入播放界面,代码:7、PlayerActivity的编写布局文件player.xml为:<LinearLayoutxmlns:android="/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"android:paddingBottom="1dip"android:paddingLeft="10dip"android:paddingRight="10dip"android:paddingTop="1dip"android:background="@drawable/background"><TextViewandroid:id="@+id/lrcText"android:layout_width="fill_parent"android:layout_height="500dip"android:text="歌词:"android:textSize="8pt"android:background="#250000FF"/><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="fill_parent"android:orientation="horizontal"><ImageButtonandroid:id="@+id/begin"android:background="#00000000"android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@drawable/begin"/><ImageButtonandroid:id="@+id/pause"android:background="#00000000"android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@drawable/pause"/><ImageButtonandroid:id="@+id/stop"android:background="#00000000"android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@drawable/stop"/></LinearLayout></LinearLayout>PlayActivity继承Activity,在该类的onCreate获取到4个控件,并且获取LocalMp3ListActivity传递来的mp3Info,保存在成员变量中供其他方法或内部类调用,为三个按钮增加监听事件,例如播放按钮的监听事件:其他的两个按钮的监听事件自行完成。

该类同时是一个广播消息接收者,接收PlayService的广播消息,所以该类有个内部类那么如何注册和取消注册呢?代码如下:这里放在onPause中的目的是在界面不可见的时候停止接收歌词更新消息,onResume当界面可见时接收消息。

8. PlayerService的编写该类比较复杂,是整个代码的核心部分。

首先,它继承了Service;该类的成员变量如下:OnStartCommand方法中的代码:Play的代码:Pause的代码:Stop使用removeCallbacks删除指定的Runnable对象,并调用mediaPlayer的stop 方法停止播放,并修改标量;prepareLrc的代码:LrcProcessor类的process方法的主要代码:time2Long的主要作用是将歌词中的时间标签通过split方法获取分、秒、毫秒后全部转化成毫秒为单位表示的值;最后,UpdateTimeCallback代码:问题:1.增加播放下一首和上一首功能如何实现?2.循环播放列表,单曲循环播放如何实现?3.如果1(6)不使用Serializable接口实现,换成Parcelable接口如何做?。

相关文档
最新文档