音乐播放器项目报告
- 格式:docx
- 大小:849.60 KB
- 文档页数:10
课程设计报告之水城攒孽创作课程设计名称:音乐播放器院系:信息工程学院学生姓名:班级:学号:成绩:指导教师:开课时间:2016-2017学年 2 学期音乐播放器一、实践的内容和要求学习WAV格式音频播放原理、数字音频接口及的相关知识。
了解模拟音频信号和数字音频信号的概念。
掌握编写音频播主要内容放器的方法。
实现音频播放,小键盘输入操纵。
本系统要做一个音乐播放器,使用通用定时器定时,用比较输出功能,输出乐谱频率的方波发生声音,对 3 首歌曲编码,其支持 WAV 格式音频播放(上键:暂停;左键:上一首;右键:下一首)。
利用硬件ARM 嵌入式开发平台、用于ARM7TDMI 的 JTAG 仿真器、PC 机 Pentium100开发实现实现音频播放。
主要实现:上一首按键:当点击上一首按键时,当前播放歌曲的上一首歌首被播放。
下一首按键:当点击下一首按键时,当前播放歌曲的下一首歌曲即被播放。
当点击停止键时,当前歌曲即会被停止。
播放界面设计:在歌曲进行播放时,界面应包含所有的按键,而且要歌曲的曲目单。
二、实践原理WAV播放器系统要求能够对mp3、wav格式的音频文件进行解码,处理起来速度是有要求的,尤其是对320Kbps的MP3格式数据流的处理,必须非常快,才干实现MP3的流畅播放,可供选择的八位机有AVR、PIC,可供选择的32位处理器有SAMSUNG、STM32、ATMEL等。
选择MCU优先考虑于拥有丰富的RAM,八位机RAM主要靠扩展,内部RAM一般在4Kbyte以内,32位机里面,SAMSUNG一般不内带RAM,也要外扩。
本实验使用了ARM7处理器,MP3解码可以有两种方法,一是通过ARM处理器软解码,通过对MP3数据格式的解析实现MP3播放,二是通过外部解码芯片直接解码。
第一种方法在解码高码率的MP3时,ARM7处理能力吃紧,而且STM32还需要外部DAC来做音频输出,所以采取第二种方法进行解码。
MP3罕见的解码芯片有VS100X系列和STA01系列,STA01需要外接DAC做音频输出,而VS1003自带DAC,且解码的文件格式包含mp3和wav,另外它还可以实现录音功能,方便以后进行功能的拓展应用。
河南科技大学课程设计说明书课程名称面向对象程序课程设计题目MP3仿真程序设计院系电子信息工程学院班级计103 班学生姓名指导教师日期 2013.3.3~2013.3.17课程设计任务书任课教师:时间:2013.3.3课程设计报告文档题目:MP3仿真程序设计一.引言1.编写目的:随着多媒体技术的发展,如何简单方便的播放各类媒体已成为人们普遍关注的问题。
本设计就是基于面向对象技术,利用VC++6.0开发制作一个具有自己设计风格的简单的多媒体MP3播放器。
该播放器是基于MFC集成开发环境,利用MCIWnd类,建立了一个MP3播放器,通过调用这个类的函数来实现MP3播放器的暂停,播放,上一首,下一首,快进等基本功能。
它外观简洁,操作简便,系统资源占用少等功能。
通过MP3仿真程序设计,更加深入了解面向对象的编程。
通过本课程设计,巩固面向对象程序设计的基本概念、原理和技术,学会使用C++语言进行简单程序的开发,将理论与实际相结合,并在此基础上强化了实践意识,提高其实际动手能力和创新能力。
2.定义:HWND m_PreAudio,m_Audio;bool m_IsPaused,m_IsOpened;前两个变量用来存储MCIWndCreate返回的窗口句柄,初始值为NULL;后两者分别用来记录文件的播放与暂停状态,初始值分别为true与false;3.参考资料:1.郑秋生、吴庆涛,《C/C++程序设计》,北京:电子工业出版社2.谭浩强《C++程序设计》,北京:清华大学出版社二.任务的描述1.目标:利用C++编写制作一个MP3播放器。
2.功能描述:实现添加音乐,播放音乐,上一首,下一首,暂停,关闭播放,删除音乐,快进控制,循环播放,背景添加等功能。
3.性能描述(1)数据精确度:各种按钮点击之后1秒内都会触发点击事件,其中快进拖动,反应时间在1—2秒。
(2)时间特性:程序2秒内就可以运行。
功能按钮1秒内触发点击事件。
信息与电气工程学院CDIO项目设计说明书(2013 /2014学年第一学期)项目名称:电子信息工程一级项目专业班级:信息(三)班学生姓名:学号:指导教师:设计成绩:2013年12月13日音乐播放器设计报告1.设计1.1设计目的1.为了更好的学习一个系统设计,善于利用所学知识应用到实践中。
2.培养综合运用所学知识独立完成汇编程序。
3.学会分析问题,解决问题能力。
4.可以把软件设计和书本的知识详解,以及对软件设计的实践应用。
1.2设计内容1.通过proteus来设计一个音乐播放器,利用8255A,8253和实现电路的综合连接。
2.根据电路的设计,使用汇编语言来编写音乐播放器的实现代码。
然后通过按键来实现对高低电平的输入和输出,这样就可以在播放器输出音乐的功能。
2.需求分析2.1流程图1.本设计流程是,当需要播放歌曲时,先把程序装入电路中实现电路的控制。
2.当需要播放一首歌曲时,通过电路按键实现控制输入。
2.2发声功能原理本项目的音乐播放器使用8086中央处理器、74LS373地址锁存器、74LS138译码器、可编程定时器/计数器8253和可编程并行接口8255A来实现。
8086中央处理器输出地址/数据码AD0-AD7,将AD0-AD7输入74LS373地址锁存器输出A0-A7,再将A3-A7和A0通过74LS138译码器进行译码输出作为8253和8255A的片选信号,A1和A2作为控制8255A和8253的片内寻址信号;8255A用来控制按键的输入;8253产生不同频率的脉冲来模拟音符,通过时间的长短来模拟音长,从而设计出一个功能完整的音乐播放器。
2.3项目仿真图3.主要设计编程过程3.1定义过程先定义8255A控制地址,然后定义A,B,C靠的地址,再利用根据8253A计时器特点设计计数器地址。
CORT EQU 00F6H ;8255A控制口地址PB_A EQU 00F0H ;8255A的A口地址PB_B EQU 00F2H ;8255A的B口地址PB_C EQU 00F4H ;8255A的C口地址COTR EQU 00FEH ;8253A控制口地址P0 EQU 00F8H ;8253A的计数器0口地址P1 EQU 00FAH ;8253A的计数器1口地址3.1音乐发声频率装入乐曲是按照一定的高低、长短和强弱关系组成的音调,在每一首乐曲中,每个音符的音高和音长与发声系统中的频率、节拍有关。
电子音乐播放器的制作报告电子音乐播放器的制作报告电子音乐已经成为了现代社会生活的一部分,人们现在可以通过多种多样的方式来欣赏自己喜欢的音乐,其中最常见的方式便是使用音乐播放器。
作为一款电子产品,音乐播放器的设计与制作必须非常精细,才能满足人们对音乐播放的各种需求。
本文主要介绍了我们小组制作电子音乐播放器的过程和结果。
1.项目背景和目的本项目的背景是,我们小组需要借助这个项目的机会把课程中学到的知识用于实际项目中。
同时,我们希望能够设计一个高性价比的音乐播放器,满足人们对电子产品的需求。
2.需求分析在开始制作之前,我们进行了需求分析,确定了音乐播放器需要满足以下几个方面的要求:(1)数据存储方便:音乐播放器需要能够方便地存储音乐数据,不仅方便用户管理,同时也便于我们的设计。
(2)播放性能好:音乐播放器需要具备稳定的播放性能,播放出来的音质要好。
(3)体积小便携:在保证功能齐全的前提下,音乐播放器需要尽可能的小,便于携带。
(4)操作简单方便:对于一般用户来说,操作简单方便是我们设计音乐播放器的重要考虑。
3.设计在进行设计时,考虑到音乐播放器需要有大量的存储空间,我们使用了SD卡作为存储介质。
同时,我们采用红外遥控器来方便操作。
在音乐播放的技术实现上,我们使用一款STM32单片机来实现。
该单片机具备较强的处理能力,能够满足我们制作一个高级音乐播放器的需求。
4.关键技术4.1 存储方案通过研究市场上各类音乐播放器,我们发现SD卡存储方式是目前最为普遍的方案。
因此,我们设计的音乐播放器也采用了SD卡存储方案。
我们使用SDIO接口与单片机进行连接。
在操作上,我们使用FATFS文件系统来实现SD卡的读取与写入。
4.2 播放器实现在音乐处理方面,我们使用的是STM32内置DAC芯片,实现了音乐的数字信号转模拟信号。
同时,我们采用了WAV格式来作为音乐播放的主要格式。
在操作上,我们使用了I2S接口来与DAC芯片进行连接。
android音乐播放器开题报告Android音乐播放器开题报告一、引言近年来,随着智能手机的普及和移动互联网的发展,人们对于音乐的需求也越来越高。
作为一种重要的娱乐方式,音乐播放器在移动设备上的应用变得越来越重要。
本文将探讨Android音乐播放器的开发,旨在提供一种功能齐全、操作简便的音乐播放器应用。
二、背景随着移动设备的普及,人们越来越倾向于使用智能手机来听音乐。
然而,市面上的音乐播放器应用存在一些问题,如功能不够全面、操作复杂等。
因此,开发一款功能强大、操作简便的Android音乐播放器应用具有重要意义。
三、目标本项目的目标是开发一款Android音乐播放器应用,具有以下特点:1. 功能齐全:能够支持多种音频格式的播放,包括MP3、WAV、FLAC等。
同时,还能够提供歌曲的分类浏览、歌词显示、播放列表管理等功能。
2. 操作简便:用户能够轻松地浏览歌曲、切换播放模式、调节音量等。
同时,还能够提供便捷的搜索功能,使用户能够快速找到自己想听的歌曲。
3. 用户体验优化:通过界面设计和交互方式的优化,提供良好的用户体验。
例如,可以提供自定义主题、背景音乐、睡眠定时等功能,满足用户的个性化需求。
四、开发计划本项目的开发计划如下:1. 需求分析:对用户需求进行深入调研和分析,明确开发目标和功能要求。
2. 技术选型:选择合适的开发语言和框架,如Java和Android Studio。
3. 界面设计:设计直观、美观的用户界面,提高用户体验。
4. 功能开发:根据需求分析,逐步实现各项功能,包括音频播放、歌曲分类、歌词显示等。
5. 测试与优化:对开发的功能进行测试,修复bug并进行性能优化,确保应用的稳定性和流畅性。
6. 发布与推广:将开发完成的应用发布到应用商店,并进行推广,吸引用户下载和使用。
五、预期成果通过本项目的开发,预期将实现以下成果:1. 一款功能齐全、操作简便的Android音乐播放器应用,满足用户对音乐播放的需求。
音乐播放器大型实验报告通过动手制作基于VC++的音乐播放器,了解播放器的原理。
并通过自己动手,在windows 播放器组件的基础上,用自己的算法,去实现自己的界面和自己的播放模式。
二、总体设计(1)在visual c++环境下设计出一个音乐播放器的界面:具有打开音乐文件、播放歌曲,、暂停或恢复、停止、调节音量大小的功能;(2)修改各个控件的属性,并为其添加消息函数; (3)用媒体控制接口MCI 编程为各个消息函数添加代码; (4)对该音乐播放器编译--运行。
音乐播放器打开文件播放歌曲暂停播放停止播放音量控制(一):创建MFC应用程序框架:打开visual c++软件,选择“文件”—“新建”新建一个应用程序文档MFC AppWizard[exe],将工程命名为MFC音乐播放器,选择合适的保存位置,然后“确定”选择基本对话框,完成设置。
(二)编辑对话框:在工作区内,设计出一个音乐播放器的界面,添加按钮控件:浏览、播放、暂停、停止,添加一个滑动条控件,一个静态文本,两个编辑框。
然后,依次修改各控件的属性:1)右击静态文本,选择属性,将标题改为音乐名称:2)右击编辑框,选择属性,将ID改为IDC_filename3) 右击Button1,选择属性,将ID改为IDC_filechoice,将标题改为浏览3)右击Button2,选择属性,将ID改为IDC_play,将标题改为播放4)右击Button3,选择属性,将ID改为IDC_pause,将标题改为暂停5)右击Button4,选择属性,将ID改为IDC_stop,将标题改为停止6)右击滑块,ID改为IDC_SLIDER单击样式,点[P]:选择顶端/左侧,选择打勾标记。
7)右击编辑框,将ID改为IDC_vol音乐播放器的界面已经设计完毕,为:(三)添加代码1)在头文件处添加#include"Mmsystem.h"#include"Digitalv.h"#pragma comment(lib,"Winmm.lib")2)定义全局变量及成员函数。
音乐播放器开题报告音乐播放器开题报告一、引言音乐是人们生活中不可或缺的一部分,它能够带给我们愉悦的情绪和美好的回忆。
随着科技的不断进步,音乐播放器成为了人们随时随地欣赏音乐的重要工具。
本文将针对音乐播放器进行开题报告,旨在探讨音乐播放器的发展趋势和创新点。
二、背景随着智能手机的普及,人们越来越多地使用手机来播放音乐。
然而,市面上的音乐播放器功能繁杂,用户体验不尽如人意。
因此,我们决定开发一款功能强大、简单易用的音乐播放器,以满足用户的需求。
三、目标我们的目标是开发一款具备以下特点的音乐播放器:1. 界面简洁美观:用户界面设计简洁大方,符合用户的审美需求。
2. 功能齐全:支持多种音频格式的播放,包括MP3、WAV、FLAC等。
同时,具备基本的音频控制功能,如播放、暂停、快进、快退等。
3. 智能推荐:根据用户的听歌历史和喜好,推荐相关的音乐,提供个性化的音乐推荐服务。
4. 云同步:支持用户将音乐库同步到云端,实现多设备间的音乐同步,方便用户随时随地欣赏音乐。
5. 歌词显示:提供歌词显示功能,让用户更好地理解和欣赏音乐。
四、创新点为了使我们的音乐播放器在市场竞争中脱颖而出,我们计划在以下几个方面进行创新:1. AI智能:引入人工智能技术,通过分析用户的听歌习惯和喜好,为用户推荐更加个性化的音乐。
同时,利用自然语言处理技术,实现对歌词的情感分析,为用户提供更加精准的歌曲推荐。
2. 社交分享:将音乐播放器与社交媒体平台相结合,用户可以分享自己喜欢的音乐和歌单,与好友互动,增加用户粘性。
3. 跨平台支持:除了手机端的应用,我们还计划开发桌面端和网页端的音乐播放器,实现跨平台的音乐同步和播放。
4. 艺术家推荐:与音乐产业合作,为用户推荐热门艺术家的最新作品和音乐会信息,提供更加全面的音乐服务。
五、技术实现为了实现以上的创新点,我们将采用以下技术进行开发:1. 数据挖掘和机器学习算法:利用用户的历史数据和行为模式,建立用户画像和推荐模型,实现个性化的音乐推荐。
实验报告课程名称:数字系统设计实验指导老师:成绩:_____________实验名称:音乐播放器设计实验实验类型:设计型一、实验目的和要求(必填)二、实验内容和原理(必填)三、主要仪器设备(必填)四、操作方法和实验步骤五、实验数据记录和处理六、实验结果与分析(必填)七、讨论、心得一、实验目的和要求实验目的:(1)掌握音符产生的方法,了解DDS技术的应用;(2)了解AC97音频接口电路的应用;(3)掌握系统“自顶而下”的设计方法。
实验要求:(1)可以播放四首乐曲,设置play、next、reset三个按键。
按play键播放当前乐曲,按键next播放下一首乐曲。
(2)LED0指示播放情况(播放时点亮),LED2和LED3指示当前乐曲序号。
2、个性化要求(1)用键盘上的三个按键P、N、Esc控制乐曲的播放。
(2)用SVGA显示乐曲的播放波形。
二、实验内容和原理本次实验共可分成mcu、song_reader、note_player、codec_conditioner和ac97_if五个子模块。
如下图:1、mcu模块接受按键信息,通知song_reader模块是否要播放(play)及播放哪首乐曲(song)。
2、song_reader模块根据mcu的要求,逐个取出音符{note,duration}送给note_player 模块播放,当一首乐曲播放完毕,回复mcu模块乐曲播放结束信号(song_done)。
3、note_player模块接收到需播放的音符,在音符的持续时间内,以48Hz速率送出该音符的正弦波样品给AC97音频接口模块。
当一个音符播放结束,向song_reader模块发送一个note_done脉冲索取新的音符。
4、codec_conditioner、ac97_if模块负责与AC97音频系统接口工作。
另外,按键处理模块完成输入同步化、防颤动和脉宽变换等功能。
设计原理:1、主控制模块mcu的设计根据设计要求,模块mcu的工作流程图如下图所示。
电子应用系统CDIO一级项目设计说明书(2012/2013学年第一学期)题目:音乐播放器的设计____专业班级:学生姓名:学号:指导教师:设计成绩:2013年1月5日⒈设计目的本次设计的目的是通过汇编语言编写程序实现简单的音乐播放功能,并且用Proteus软件进行仿真,以此来加深对汇编的理解和对相关器件的认识,运用我们所学习的微机原理的理论知识和一些实际的问题结合起来,去提高学生的综合能力,更加熟练的使用Proteus软件和emu8086软件。
⒉设计正文设计播放器的过程中主要用到的器件有8086中央处理器、可编程定时器/计数器8253和可编程并行接口8255A芯片、74LS373地址锁存器、74LS138译码器。
8086处理器输出地址/数据AD0-AD7,将AD0-AD7输入74LS373地址锁存器输出A0-A7,再将A3-A7和A0通过74LS138译码器进行译码输出作为8253和8255A的片选信号,A1和A2作为控制8255A和8253的片内寻址信号;8255A用来控制按键的输入;8253产生不同频率的脉冲来模拟音符,通过时间的长短来模拟音长,进而实现播放音乐的功能和开关控制功能。
2.1 设计中各个器件的介绍2.1.1 8086处理器图1 8086CPU引脚8086CPU外部采用40引脚双列直插式封装。
8086芯片的引脚应该包括20根地址线、16根数据线以及控制线、状态线、电源和地线等。
8086CPU引脚按功能可分为三大类:电源线和地线、地址/数据引脚以及控制引脚。
1)电源线和地线电源线Vcc(第40引脚):输入,接入±10%单一+5V电源。
地线GND(引脚1和20):输入,两条地线均应接地。
2)地址/数据(状态)引脚地址/数据分时复用引脚AD15-AD0:引脚39及引脚2-16,传送地址时单向输出,传送数据时双向输入或输出。
地址/状态分时复用引脚A19/S6-A16/S3:引脚35-38,输出、三态总线。
音乐播放器用例分析报告目录•引言•音乐播放器概述•用例分析•问题与挑战•解决方案与建议•结论01引言分析音乐播放器的功能需求和用户体验。
评估不同音乐播放器的优缺点和适用场景。
为音乐播放器的设计、开发和优化提供参考。
03本报告将结合用户需求和市场趋势,对音乐播放器的未来发展进行预测。
01本报告将涵盖不同类型的音乐播放器,如手机音乐播放器、电脑音乐播放器、智能音箱等。
02报告将分析各种用例,包括音乐播放、搜索、下载、推荐、社交分享等。
02音乐播放器概述音乐播放器是一种用于播放音乐的电子设备。
总结词总结词音乐播放器的功能主要包括音频播放、音频处理和用户交互。
详细描述音乐播放器的主要功能是播放音频文件,包括MP3、AAC、WAV等格式。
此外,一些高级的音乐播放器还具备音频处理功能,如音效调整、均衡器设置等。
用户交互方面,音乐播放器通常提供图形界面,方便用户进行操作和设置。
•总结词:音乐播放器可以根据不同的标准进行分类,如便携式和台式、在线和离线、智能和非智能等。
•详细描述:根据使用方式,音乐播放器可以分为便携式和台式两种类型。
便携式音乐播放器通常体积较小,便于携带,如MP3播放器;而台式音乐播放器则通常体积较大,功能更丰富,如家庭音响系统。
根据是否需要联网,音乐播放器可以分为在线和离线两种类型。
在线音乐播放器需要联网才能播放音乐,如各种流媒体音乐平台;而离线音乐播放器则可以在不联网的情况下播放已下载的音乐。
此外,根据是否具备智能功能,音乐播放器还可以分为智能和非智能两种类型。
智能音乐播放器通常具备更多的扩展功能,如语音助手、网络浏览器等。
03用例分析总结词用户登录功能是音乐播放器的基本功能之一,用于验证用户身份并保护用户个人信息。
详细描述用户可以通过输入用户名和密码或使用第三方账号(如微信、QQ等)登录音乐播放器。
在登录成功后,用户可以享受个性化服务和保存个人设置。
用户登录音乐播放总结词音乐播放功能是音乐播放器的核心功能,用于播放本地或在线音乐。
在线音乐播放器测试报告1. 简介本文档旨在提供关于在线音乐播放器的测试报告,在测试过程中,我们对音乐播放器的功能和性能进行了全面的评估,并记录下各项测试结果和问题。
2. 测试环境- 操作系统:Windows 10- 浏览器:Google Chrome 版本 90.0.4430.85- 设备:个人电脑- 测试日期:2021年5月1日-2021年5月7日3. 功能测试在功能测试中,我们对音乐播放器进行了以下方面的测试:- 用户注册与登录功能- 音乐搜索功能- 播放列表管理功能- 歌曲播放与暂停功能- 歌曲收藏功能- 分享歌曲功能经过测试,我们发现音乐播放器的各项功能正常工作,并没有出现任何异常或错误。
4. 性能测试为了评估音乐播放器的性能,我们进行了以下测试:- 页面加载速度测试- 歌曲加载速度测试- 播放延迟测试- 响应时间测试根据测试结果,音乐播放器的性能表现良好,加载速度快,播放延迟较小,并且响应时间在可接受范围内。
5. 问题与改进建议尽管音乐播放器在测试过程中表现良好,我们还是发现了以下问题和改进建议:- 在某些情况下,搜索结果不够准确或匹配度较低,建议优化搜索算法。
- 播放列表管理功能缺乏某些常用操作,建议增加删除和编辑功能。
- 部分用户反馈播放过程中出现卡顿现象,建议优化播放器的性能。
6. 测试总结在整个测试过程中,音乐播放器表现出良好的功能和性能。
我们建议开发团队继续优化和改进搜索算法、播放列表管理功能和性能,以提供更好的用户体验。
以上是本次在线音乐播放器测试报告的内容。
如有任何问题或需要进一步的讨论,请随时与我们联系。
谢谢!。
百度文库- 让每个人平等地提升自我!目录1.课程实习目的 (1)1.1了解QT和QT creator (1)1.2了解Qt phonon的多媒体框架 (1)2.课程实习题目描述和要求 (1)2.1 QT制作音乐播放器 (1)2.2音乐播放器能实现简单的功能 (1)3.课程实习报告内容 (1)3.1实验步骤 (1)3.2程序代码 (2)3.3实现截图 (4)4.总结 (5)5.任务分配 (6)1.课程实习目的1.1了解QT和QT creatorQt Creator是跨平台的Qt IDE,Qt Creator 是Qt 被Nokia 收购后推出的一款新的轻量级集成开发环境(IDE)。
此IDE 能够跨平台运行,支持的系统包括Linux(32 位及64 位)、Mac OS X 以及Windows。
根据官方描述,Qt Creator 的设计目标是使开发人员能够利用Qt 这个应用程序框架更加快速及轻易的完成任务。
1.2了解Qt phonon的多媒体框架Phonon是什么?Qt从4.4版本开始提供的一套多媒体框架,提供多媒体回放的功能。
目前在Qt 4.6中实现多媒体播放图形界面主要依赖于phonon框架,其实qt中还有一个Multimedia模块,帮助文档中对它的描述是:实现底层的多媒体播放功能,在一般情况下上层的接口phonon模块更适合实现这些功能。
phonon最初是一个源于KDE的项目,为使用音频和视频的应用程序开发提供的一个框架。
应用程序不用去管多媒体播放是通过什么实现的(如gstreamer、xine),只需调用相应的接口就行,但这中间需要一个中转,被称为backend。
Qt也是通过phonon来实现跨平台的多媒体播放。
2.课程实习题目描述和要求2.1 QT制作音乐播放器通过创建带有Phonon模块的工程,对音乐播放器进行设计,主要用到模块中的MediaObject (管理媒体源) AudioOutput (连接物理设备)SeekSlider(实现进度条)QList (实现播放列表)2.2音乐播放器能实现简单的功能这个软件设计的目的就是制作一个能够播放音频的播放器。
软件工程android安卓音乐播放器毕业实习报告软件工程android安卓音乐播放器毕业实习报告目录一、引言 (2)1.1 项目背景 (2)1.2 安卓介绍 (2)1.3 安卓组件介绍 (3)1.4 安卓XML文件的使用 (4)1.5 编写目的 (5)第二章系统功能简介 (6)2.1 功能需求分析 (6)2.1.1 播放器的基本控制需求 (6)2.1.2声音控制的程序流程图 (7)2.2 系统性能需求 (7)2.3 运行环境需求 (8)第三章程序详细设计 (9)3.1 程序界面设计 (9)3.2程序音乐文件过滤 (11)3.3 程序界面Activity类的设计 (11)3.4 音乐播放核心代码 (12)第四章程序设计结果及测试分析 (14)4.1 程序运行效果图 (14)4.2 程序调试过程 (14)总结 (15)实习日记 (i)一、引言1.1 项目背景当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,现在的市场上主要有三个手机操作系统,symbian,Windows mobile,以及谷歌的Android操作系统,其中占有开放源代码优势的Android系统有最大的发展前景。
那么能否在手机上拥有自己编写的个性音乐播放器呢?答案是:肯定的,谷歌Android系统就能做到。
本文的音乐播放器就是基于谷歌Android 手机平台的播放器。
Android:是谷歌于2007年公布的开放式源代码手机系统,它的开放性就优于其它封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。
这使得越来越多的人关注这个操作系统。
本次作品音乐播放器就是基于Android平台的。
随着计算机的广泛运用,手机市场的迅速发展,各种音频视频资源也在网上广为流传,这些资源看似平常,但已经渐渐成为人们生活中必不可少的一部分了。
于是各种手机播放器也紧跟着发展起来,但是很多播放器一味追求外观花哨,功能庞大,对用户的手机造成了很多资源浪费,比如CPU,内存等的占用率过高,在用户需要多任务操作时,受到了不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。
课程设计报告课程设计题目:java音乐播放器学生姓名:专业:XXXXXXXXXXXXX班级:指导教师:20XX年X月X日一、课程设计目的1、编程设计音乐播放软件,使之实现音乐播放的功能。
2、培养学生用程序解决实际问题的能力和兴趣。
3、加深java中对多媒体编程的应用。
二、课程设计的要求利用学到的编程知识和编程技巧,要求学生:1、系统设计要能完成题目所要求的功能,设计的软件可以进行简单的播放及其他基本功能。
2、编程简练,可用,尽可能的使系统的功能更加完善和全面3、说明书、流程图要清楚。
三、课程设计内容1、课程设计的题目及简介音乐播放软件要求:有图形界面,能播放MP3歌曲,有播放列表,前一首、后一首等常用播放软件功能。
2、设计说明主要运用多媒体编程、图形界面、数组及循环进行设计,从而实现简单的音乐播放。
public MyMusicPlayer():实现窗口的成员方法publi c void run():实现改变歌曲的播放状态的成员方法public AudioClip loadSound(String filename):实现对声音的加载public void mouseClicked(MouseEvent e):实现对按钮的监听public void itemStateChanged(ItemEvent arg0):返回一个AudioClip对象3、程序流程图4、程序清单import java.awt.*;import javax.swing.*;import java.applet.*;import java.awt.event.*;import .*;public class MyMusicPlayer extends Thread implements MouseListener,ItemListener{JFrame MainFrame=new JFrame("MyMusicPlayer"); //定义主窗体JLabel songname=new JLabel(); //用标签显示状态JButton last=new JButton();JButton play=new JButton();JButton next=new JButton();JButton loop=new JButton(); //定义上一曲,播放,下一曲,循环四个按钮JLabel list=new JLabel("播放列表");List songlist=new List(); //显示歌曲列表AudioClip[] song=new AudioClip[10]; //将音频文件放在数组中AudioClip playsong; //当前选定播放的音频文件String[] name={"黄小琥 - 顺其自然.wav","陈奕迅-张氏情歌.wav","黄小琥 _没那么简单.wav","戚薇-如果爱忘了.wav","郭采洁 - 狠狠哭.wav","test.wav"};//将所有文件名存放在字符串数组name中String playname; //当前选定播放的音频名int j=0; //记录当前选定播放的是哪首歌曲,默认为第一首boolean playbutton=true; //记录播放状态,默认为暂停播放boolean loopbutton=false; //记录循环状态,默认为没有循环Thread thread=new Thread("pl");static MyMusicPlayer Yu;public MyMusicPlayer(){MainFrame.setLayout(null);MainFrame.setBounds(300,50,310,500);MainFrame.setVisible(true);MainFrame.setDefaultCloseOperation(3);MainFrame.add(songname);Font sname=new Font("斜体",Font.ITALIC,18);songname.setFont(sname); //设置显示状态的字体为斜体songname.setText("我的音乐播放器");songname.setBounds(10,10,300,40);last.setBounds(10,70,50,40);play.setBounds(70,70,50,40); //设置四个功能键位置和大小next.setBounds(130,70,50,40);loop.setBounds(190,70,50,40);last.setIcon(new ImageIcon("1.png"));play.setIcon(new ImageIcon("2.png"));next.setIcon(new ImageIcon("3.png"));loop.setIcon(new ImageIcon("4.png")); //设置四个功能键的图片last.addMouseListener(this);play.addMouseListener(this);next.addMouseListener(this);loop.addMouseListener(this); //添加按键鼠标监听器MainFrame.add(last);MainFrame.add(play);MainFrame.add(next);MainFrame.add(loop);list.setBounds(10,120,100,30);Font lis=new Font("宋",Font.BOLD,15);list.setFont(lis); //显示“播放列表”MainFrame.add(list);songlist.setBounds(10,150,250,300);songlist.setBackground(Color.GREEN); //设置播放列表的背景色为绿色songlist.setVisible(true);songlist.addItemListener((ItemListener) this); //添加列表监听器MainFrame.add(songlist);for(int i=0;i<name.length;i++){song[i]=loadSound(name[i]); //逐个获取音频文件songlist.add(name[i]); //将歌曲名添加到播放列表}playsong=song[0];}public static void main(String[] args){Yu=new MyMusicPlayer();Yu.start();}public void mouseClicked(MouseEvent e) {JButton btn=(JButton)e.getSource();playsong.stop();if(btn==play){ if(playbutton==false)playbutton=true;elseplaybutton=false; //当按下play后改变播放状态}elseif(btn==last){ j-=1; //当按下last后将上一曲选定if(j<0)j=name.length-1; //若之前选定为第一首,则跳到最后一首playbutton=true;loopbutton=false;}elseif(btn==next){ j+=1; //当按下next后将下一曲选定if(j>=name.length)j=0; //若之前选定为最后一首,则跳到第一首playbutton=true;loopbutton=false;}elseif(btn==loop){ if(loopbutton==false){loopbutton=true;playbutton=true;}else{ //按下loop后,改变循环状态和播放状态loopbutton=false;playbutton=false;}}if(playbutton==true)Yu.run();else{songname.setText("暂停播放:"+playname); //暂停播放歌曲play.setIcon(new ImageIcon("2.png"));}}public void mouseEntered(MouseEvent arg0) {// TODO Auto-generated method stub}public void mouseExited(MouseEvent arg0) {// TODO Auto-generated method stub}public void mousePressed(MouseEvent arg0) {// TODO Auto-generated method stub}public void mouseReleased(MouseEvent arg0) {// TODO Auto-generated method stub}public void itemStateChanged(ItemEvent arg0) {String str=songlist.getSelectedItem();playsong.stop();for(int i=0;i<name.length;i++)if(str==name[i]){j=i;break;}Yu.run();}public void run(){playsong=song[j]; //播放状态为播放时playsong.play(); //播放选定歌曲playname=name[j];if(loopbutton==true){playsong.loop(); //循环播放选定歌曲songname.setText("循环播放:"+playname);}elsesongname.setText("正在播放:"+playname);songlist.select(j); //播放列表中选定播放歌曲项目play.setIcon(new ImageIcon("5.png"));}public AudioClip loadSound(String filename){ //返回一个AudioClip对象URL url=null;try{url=new URL("file:"+filename);}catch(MalformedURLException e){ }return Applet.newAudioClip(url);}}5、程序运行结果四、课程设计总结经过这几天的Java课程设计,让我知道了做课程设计的一般方法,通过各种努力终于完成了设计要求.这次课程设计基本上含盖了大学一年学习到的Java 语言知识点,课设题目要求不仅要求对课本知识有较深刻的了解,同时要求程序设计者有较强的思维和动手能力。
618花式促销技巧总结1. 促销活动前的准备工作在进行618促销活动之前,有一些重要的准备工作需要完成,以确保活动的顺利进行和取得良好的销售效果。
1.1 活动目标规划在制定促销活动计划之前,要确定活动的具体目标。
这可以包括销售额目标、客户增长目标、品牌曝光目标等。
根据不同的目标,制定相应的策略和指标,以便后续的活动评估和优化。
1.2 促销方案制定根据活动目标和需求,制定相应的促销方案。
这可以包括打折、满减、赠品等多种方式。
要根据产品的特点和目标受众的需求,选择合适的促销方案,并考虑与其他营销渠道的结合。
1.3 促销物资准备促销活动需要相应的促销物资,如海报、宣传单页、礼品等。
要提前准备好这些物资,确保活动进行时能够顺利使用和分发。
此外,还要考虑与供应商的沟通和协调,保证物资的质量和数量。
2. 线上促销技巧随着互联网的发展,线上促销活动越来越重要。
下面是一些可以帮助提升线上促销效果的技巧。
2.1 优化网站和APP网站和APP是线上销售的关键,要确保它们的性能和易用性。
优化网站和APP 的速度和响应时间,提升用户体验。
此外,通过设计吸引人的界面和提供个性化的推荐功能,可以增加用户的停留时间和购买欲望。
2.2 利用社交媒体社交媒体是一个强大的促销工具,可以帮助扩大品牌的影响力和吸引更多的用户。
通过发布有趣的内容、与用户互动并提供独家优惠等方式,可以增加用户的关注度和参与度。
2.3 进行电子邮件营销电子邮件营销是一种直接有效的线上促销手段。
通过定期向用户发送促销信息、优惠券和最新产品信息,可以提醒用户关注活动,并促使他们下单购买。
3. 线下促销技巧传统的线下促销也是不可忽视的,它可以帮助增加实体店的客流量和增加销售额。
3.1 导购员培训导购员在促销活动中起着关键作用,他们能够直接接触和影响顾客。
因此,合理的导购员培训非常重要。
培训内容可以包括产品知识、销售技巧和服务意识等方面,以提高导购员的专业素质和销售能力。
华东交通大学课程项目
学院:软件学院 ______
课程名称: Android应用开发___________
项目名称: ___ _音乐播放器________
学生名字: ____ ________
学生班级: ____ ______
授课教师: __________
授课学期:2015___至2016______学年第 2 学期
2016年 6月 1 日
目录
目录 (2)
1、需求分析 (3)
1.1编写目的 (3)
1.2项目背景 (3)
1.3目标 (4)
1.4用户特点 (4)
2、程序设计 (5)
2.1欢迎界面 (5)
2.2主页面 (6)
2.3播放音轨SeekBar (6)
2.4播放调节功能实现 (7)
2.5歌曲列表显示界面 (8)
2.6专辑列表显示界面 (8)
3、功能设计 (9)
4、个人总结 (10)
1、需求分析
1.1编写目的
现今社会生活紧张,而欣赏音乐史其中最好的舒缓压力的方式之一,音乐播放类的软件数不胜数,为什么我还要再写一个播放器出来呢?因为现有的音乐播放器功能实在是有些多了,多未必不好,但是我总想要一个干净纯粹的音乐播放器,只为听歌的播放器,一个有着一些自己想要的功能的播放器,比如“切歌”,一个自己熟悉代码的播放器,甚至,一个可以自定义功能结构的音乐播放器。
本项目的目的是开发一个可以播放主流音乐文件格式的播放器,本设计的实现的这主要功能是播放MP3等音乐文件,并且能够控制播放器播放,暂停,停止,上一曲,下一曲。
界面简单,操作简单。
本软件具备音乐播放器的播放歌曲、歌曲列表、拖动进度等基本功能,同时本播放器界面简洁美观,操作简单便捷。
1.2项目背景
随着智能手机的普及,用户需要各种各样的应用软件,音乐播放器肯定是必不可少的。
随着计算机的广泛运用,手机市场的迅速发展,各种音频资源也在网上广为流传,这些资源卡是平常,但已经渐渐成为人们生活中必不可少的一部分了。
于是各种手机播放器也紧跟着发展起来,但是很多播放器一味最求外观花俏,功能庞大,对用户的手机造成很多资源浪费,比如CPU,内存等的占用率过高,在用户需要多任务操作时,受到不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。
针对以上各种弊端,选择了开发多语种的音频播放器,将各种性能优化,继承播放器的常用功能,满足一般用户听歌的需求。
1.3目标
学习完本周的应用开发课程之后,需要实现以下目标:
可以获取本地音乐
可以显示歌曲的进度
可以用拖动条来控制歌曲的进度
音乐播放器可以循环播放音乐;
可以播放下一首歌曲;
有一个精美的界面;
可以通过手势调节音量;
1.4用户特点
本系统的最终用户是面向广大的拥有手机的用户。
广大用户有各个阶级的,学生,上班族,家长。
主要群体是学生,学生的特点是要求播放的音频潮流,音质高,功能多种多样。
学生基本上会随身携带手机。
上班族工作压力比较大,可以适当的播放音乐缓解压力。
2、程序设计
2.1欢迎界面
欢迎界面模块主要是用于给用户一种友好的体验,让用户较容易接受本软件。
进入系统后进入欢迎界面如图2.1,运用计时器两秒钟后自动跳转到选择进入界面4.2。
并且运用了组合动画实现了渐隐的效果。
2.1欢迎界面
2.2主页面
主页面是本运用的核心界面,本界面拥有三个Fragment,可以运用Activity底部的选项卡进行切换,三个Fragment分别为歌曲列表,正在播放以及专辑列表。
如图4.2所示,此时Activity 上显示的Fragment为正在播放,此页面运用一张炫酷的网络图片。
中间一块专辑及歌曲显示的模块是属于一个自定义模块。
底部为音轨模块。
2.2主页面
2.3播放音轨SeekBar
播放器最重要的一部分就是音轨与歌曲进度同步的实现。
音轨设置了两个TextView用来显示当前歌曲播放的进度时间和歌曲的长度。
音轨对象SeekBar在歌曲刚开始播放的时候调用方法SeekBar.setMax(),参数传入歌曲的长度。
SeekBar.setProgress(1)设置游标的起始进度为1。
Android的线程的开始是通过Handler类来进行的,Handler类是线程与线程之间通信的桥梁,实现Runnable接口会实现里面的run方法,当线程开始的时候,Runnable 中的run方法会向Handler发一个Message消息,这样,Handler类就可以接收到run方法发送过来的不同的消息进行不同的代码处理。
这样就达到了各线程之间的通信。
要启动一个线程调用Handler的方法postDelayed(Runnable,1000)表示线程睡眠时间是1000ms 。
让播放歌曲的线程每隔1000ms,即每1秒对音轨的TextView重新设置时间且让进度条
前进1秒的进度。
对音轨进行刷新。
这样就实现了歌词同步功能SeekBar有一个监听器,该监听器的作用是一直保持着对进度条的监听,当我们用鼠标向SeekBar的各位置进行点击时,它会自动监听其位置,进行相应的位置显示。
这也是进度条上的游标会不停的移动和歌词时间会不停的变动的原因。
2.3播放音轨
2.4播放调节功能实现
各按钮水平放置,从左到右依次是上一首、播放、下一首功能按钮。
用的是布局中的线性布局LinearLayout,;将其设置为水平,如图所示。
LinearLayout中依次放置播放/暂停,上一首、下一首按钮属性。
歌曲专辑图片显示,如果有歌曲图片,才会返回,否则为null,
2.4控制按钮
Android的媒体播放原理:Android源程序已经为我们封装好了一个接口类,叫MediaPlayer。
该接口在执行行需要一个数据源,通过如下步骤:
第一步:MediaPlayer.reset();复位操作,为以后的媒体准备播放作准备。
第二步:传入歌曲数据源,这里也是一个数据MediaPlayer.setDataSource(String path);参数需要传一个路径,该接口类在收到路径后将其转化为数据源。
第三步:准备播放数据源,调用方法MediaPlayer.Prepare()。
第四步:MediaPlayer.Start();播放数据源,该数据源播放后,不再与程序有关,需要用MediaPlayer.Stop()方法让其停止或MediaPlayer.Start();让其启动。
2.5歌曲列表显示界面
歌曲列表整体采用了相对布局(RelativeLayout),中间歌曲列表部分采用的是ListView视图,以确保有大量歌曲时能滚动式容纳所有歌曲,如图2.5所示,背景采用一张炫酷的图片,自定义LIstView,左侧为歌曲图片,中间为歌曲名歌手,最右边为歌曲时长。
歌曲的名称:MediaStore.Audio.Media.TITL
歌曲的歌手名:MediaStore.Audio.Media.ARTIST
歌曲的总播放时长:MediaStore.Audio.Media.DURATION
2.5歌曲列表
2.6专辑列表显示界面
专辑列表采用了网格视图(GridView) 用它能实现视图的网格排列,九宫格视图就是GridVew最典型的使用,GridView是一个AdapterView,所以需要通过适配器来绑定数据,这里使用BaseAdapter。
如图所示用一张网络图片作为背景,GRidView布局自定义,每个item分为两部分,上面为图片,下边为歌曲专辑名。
歌曲的专辑名:MediaStore.Audio.Media.ALBUM
2.6专辑列表
3、功能设计
该系统具有以下主要功能:
1)播放歌曲,显示歌曲名字
2)播放上一首歌和下一首歌
3)播放模式可以是循环的,也以是单曲循环
4)可以通过手势调节歌曲进度
5)可以选取歌曲进行播放
4、个人总结
通过对Android手机平台的音乐播放器的开发,使我对Android系统有了更高层次的了解,Android功能是非常强大的,在这段时间的学习与实践中遇到了很多难题,不过通过网上专门的Android 社区有些开源的代码供参考研究,同时还得到了Android高手的指点,总算给完成了,觉得蛮有意义的。
开发Android音乐播放器,要抓住开发的核心部分,音乐播放器大体由播放主界面、播放列表组成。
这两个个模块完成,音乐播放器就能初具规模。
而其它的功能都是在这两个模块的基础上去补充添加的,这是功能的确是必不可少的功能,否则就不具备音乐播放器的基本功能了。
在开发过程中我学到了一些经验:系统分析的好坏将决定着的系统开发成功与否,一份好分析设计将是成功开发主要因素。
总之,经过这次的Android系统技术知识的学习和对音乐播放器的构思与设计,使我对Android系统有了一定的了解,让我对Android系统上的开发流程和开发模式有了深入的了解,同时也对整个软件产品的实现流程有了一个深入的了解,这对我以后从事软件开发有很大的帮助。