C语言实现Mini-Cooledit音频播放器

C语言实现Mini-Cooledit音频播放器
C语言实现Mini-Cooledit音频播放器

多媒体实验报告

姓名:李浩日期:2013.6.21

作业一:Mini-Cooledit音频播放器

一、实验题目

Mini-Cooledit音频播放器

二、实验任务

编程实现一个具有GU I界面的音频播放控制小软件。

三、实验要求

从文件读取Wav音频文件

音频文件的播放、暂停、停止功能

从麦克风录音,并能存储成Wav文件

对录音进行播放、暂停、停止等功能

实现音频采样率与量化位数的转换(如44.1KHz, 16位转换成16KHz,8位)

音频波形的显示、时间轴显示的放大、缩小(选作)

音频语谱图的绘制与显示(选作)

四、设计原理及步骤

MCI ( Media Control Interface ) ,即媒体控制接口,向基于Windows操作系统的应用程序提供了高层次的控制媒体设备接口的能力。应用程序通过MCI发送相应的命令来控制媒体设备。

一条基于MCI的命令包含以下3个部分。

数据结构:该结构包含可传递给MCI驱动程序的信息和从驱动程序返回的值,指定要执行的MCI命令一个常量,如MCI_OPEN、MCI_CLOSE...

一个或一组用来指定MCI信息子选项的标志:这些标志用来确定可以得到什么类型的信息和如何执行函数。

一个确定命令附加参数:Windows MDK为使用命令消息接口发送MCI消息提供了3个核心函数。

1、mciSendCommand函数。该函数用于向MCI设备发送一个命令消息,原型为:MCIERROR mciSendCommand(MCIDEVICEID IDDevice, UINT uMsg, DWORD

fdwCommand, DWORD dwParam);

参数说明如下:

IDDevice:用来表示一个MCI设备。MCI使用MCI_OPEN消息打开一个设备时自动创建一个标识号用以唯一标识要操作的设备,以后的命令操作均使用此标识。

uMsg:表示要发出的消息,取值如下所示。

MCI_OPEN 打开一个设备

MCI_CLOSE 关闭一个设备

MCI_PLAY 播放全部或部分音频,从暂停状态恢复播放

MCI_STOP 停止播放

MCI_PAUSE 暂停播放

MCI_SEEK 改变当前位置

MCI_CUE 提示一个设备以最小的延迟开始播放或录制

MCI_RECORD 在一个设备上开始录制

MCI_SA VE 保存一个文件

MCI_INFO 查询设备信息,如产品名称等

MCI_GETDEVCAPS 查询产品特征,如设备类型等

MCI_STA TUS 查询设备当前状态,如播放位置、媒体格式等

MCI_SET 设置设备参数,如时间格式、波形数据格式等

fdwCommand:消息指定标志。

dwParam:指定一个指向消息数据结构的指针。

如果mciSendCommand函数调用成功则返回0,否则返回错误代码消息。所返回的DWORD低位字是错误代码,可以将它发送到mciGetErrorString函数,已获得对错误的文本描述。若错误事设备特有的,高位包含了设备ID,否则高位为0。

MMSYSTEM.H头文件中还定义了MCI命令所需要的数据结构类型。以下是MCI命令常用的数据结构。

MCI_OPEN_PARMS MCI_OPEN命令消息参数的数据结构

MCI_PLAY_PARMS MCI_PLAY命令消息参数的数据结构

MCI_RECORD_PARMS MCI_RECORD命令消息参数的数据结构

2、mciGetDevicelID函数。当打开一个设备时,该函数用来获得此设备的ID,原型为:MCIDEVICEID mciGetDevicelID(LPCTSTR lpszDevice);

参数lpszDevice指定要打开的MCI设备名。若函数调用成功,则返回设备的标志号,否则返回0。

3、mciGetErrorString函数。该函数用于返回一个错误代码的文本描述,原型为:BOOL mciGetErrorString(DWORD fdwError, LPTSTR lpszErrorText, UINT cchErrorText);

参数说明如下:

fdwError:上一次mciSendCommand函数调用的返回值。

lpszErrorText:用来接收返回的文本描述的缓冲区指针。

cchErrorText:指定lpszErrorText的长度。

各主要模块的实现

文件打开并获取信息

void CMiniDlg::Onopen()

{

// TODO: Add your control notification handler code here

CString str;

CString Filter("选择wav文件:(*.mp3及*.wav文件)||*.wav||*.mp3");

CFileDialog fname(TRUE,NULL,NULL,OFN_HIDEREADONL Y | OFN_OVERWRITEPROMPT,Filter,NULL);

if(IDOK==fname.DoModal())

{

str=fname.GetPathName();

SetDlgItemText(IDC_status,str);

}

if(m_songopen)

{

m_playstatu=FALSE;

mciSendCommand(m_DeviceID,MCI_CLOSE,NULL,NULL);

}

//打开设备

m_songopen=TRUE;

m_CurrentPosition=0;

MCI_OPEN_PARMS mciopenparms;

mciopenparms.lpstrElementName = str;//播放路径

mciopenparms.lpstrDeviceType = NULL;//文件类型

mciSendCommand(0,

MCI_OPEN,MCI_DEVTYPE_W A VEFORM_AUDIO,(DWORD)(LPMCI_OPEN_PARMS)&mc iopenparms);//向MCI设备发送命令消息

m_DeviceID = mciopenparms.wDeviceID; //标识符返回应用程序

MCI_STATUS_PARMS mciStatusParam;

mciStatusParam.dwItem = MCI_WA VE_STA TUS_BITSPERSAMPLE;//声音位长

//MCI设备的状态信息(声音位长)

mciSendCommand(m_DeviceID, MCI_STATUS,MCI_WAIT|MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciStatusParam);

str.Format("%dbit",mciStatusParam.dwReturn);

SetDlgItemText(IDC_BITS0,str);//返回位长

mciStatusParam.dwItem=MCI_WA VE_STATUS_SAMPLESPERSEC;

mciSendCommand(m_DeviceID,MCI_STA TUS,MCI_WAIT | MCI_STA TUS_ITEM,(DWORD)(LPVOID)&mciStatusParam);

str.Format("%dHz",mciStatusParam.dwReturn);

SetDlgItemText(IDC_speed0,str);//返回采样频率

mciStatusParam.dwItem = MCI_WA VE_STA TUS_CHANNELS;//声道数

//MCI设备的状态信息(声道数)

mciSendCommand(m_DeviceID, MCI_STATUS,MCI_WAIT | MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciStatusParam);

str.Format("%d",mciStatusParam.dwReturn);

SetDlgItemText(IIDC_channe0,str);//返回声道数

int hours,mintues,seconds;

mciStatusParam.dwItem = MCI_STA TUS_LENGTH;//音频长度

//返回MCI设备的状态信息(音频长度)

mciSendCommand(m_DeviceID,MCI_STA TUS,MCI_WAIT | MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciStatusParam);

mintues=mciStatusParam.dwReturn/1000;

seconds=mintues%60;

mintues=mintues/60;

hours=mintues/60;

str.Format("%02d:%02d:%02d",hours,mintues,seconds);

SetDlgItemText(IDC_totletime,str);

m_playslider.SetRange(0,mciStatusParam.dwReturn);

m_playslider.SetPos(0);

m_volumeslider.SetRange(0,100);

m_volumeslider.SetPos(100);

}

wav文件的播放与停止

void CMiniDlg::Onplay()

{

// TODO: Add your control notification handler code here

if(FALSE==m_songopen)

Onopen();

if (!m_playstatu)

{

SetTimer(1,33,NULL);

m_playstatu=true;

GetDlgItem(IDC_play)->SetWindowText("播放");

//获得文件播放的当前位置

MCI_STA TUS_PARMS mcistatusparms;

mcistatusparms.dwItem = MCI_STA TUS_POSITION;

mcistatusparms.dwReturn = 0;

mciSendCommand(m_DeviceID, MCI_STA TUS, MCI_STA TUS_ITEM, (DWORD)(LPMCI_STA TUS_PARMS)&mcistatusparms);

//播放

MCI_PLAY_PARMS mciplayparms;

mciplayparms.dwFrom

=MCI_MAKE_MSF(MCI_MSF_MINUTE(m_CurrentPosition),MCI_MSF_SECOND(m_Curren tPosition),

MCI_MSF_FRAME(m_CurrentPosition));

mciSendCommand(m_DeviceID, MCI_PLAY, MCI_FROM, (DWORD)(LPMCI_PLAY_PARMS)& mciplayparms);

mciplayparms.dwFrom

=MCI_MAKE_MSF(MCI_MSF_MINUTE(mcistatusparms.dwReturn),MCI_MSF_SECOND(mc istatusparms.dwReturn),

MCI_MSF_FRAME(mcistatusparms.dwReturn));

mciSendCommand(m_DeviceID, MCI_PLAY, MCI_FROM, (DWORD)(LPMCI_PLAY_PARMS)& mciplayparms);

}

else

{

mciSendCommand (m_DeviceID, MCI_PAUSE, NULL, NULL);

m_playstatu=false;

GetDlgItem(IDC_play)->SetWindowText("暂停");

}

}

void CMiniDlg::Onstop()

{

// TODO: Add your control notification handler code here

m_playstatu=false;

m_playslider.SetPos(0);

GetDlgItem(IDC_play)->SetWindowText("播放");

mciSendCommand(m_DeviceID, MCI_STOP, NULL, NULL);

mciSendCommand(m_DeviceID, MCI_SEEK, MCI_SEEK_TO_START, NULL);

// mciSendCommand(m_DeviceID,MCI_CLOSE,NULL,NULL);

}

录音与录音文件的保存

void CMiniDlg::Onrecord()

{

// TODO: Add your control notification handler code here

if (m_songopen)

{

mciSendCommand(m_DeviceID,MCI_CLOSE,NULL,NULL);

}

KillTimer(1);

GetDlgItem(IDC_record)->SetWindowText("正在录音");

GetDlgItem(IDC_record)->EnableWindow(FALSE);

SetDlgItemText(IDC_status,"");

MCI_OPEN_PARMS mciopenparms;

mciopenparms.lpstrDeviceType = "waveaudio";//文件类型

mciopenparms.lpstrElementName="";

mciSendCommand(0,MCI_OPEN,MCI_OPEN_TYPE|MCI_OPEN_ELEMENT,(DWORD)( LPMCI_OPEN_PARMS)&mciopenparms);

m_DeviceID = mciopenparms.wDeviceID;

MCI_WA VE_SET_PARMS mciwavesetparms;

mciwavesetparms.wFormatTag = W A VE_FORMA T_PCM;

UpdateData(TRUE);

switch(m_rechannel)

{

case 0:

mciwavesetparms.nChannels = 1;break;

case 1:

mciwavesetparms.nChannels = 2;break;

}

switch(m_rebit)

{

case 0:

mciwavesetparms.wBitsPerSample = 8;break;

case 1:

mciwavesetparms.wBitsPerSample = 16;break;

}

switch(m_respeed)

{

case 0:

mciwavesetparms.nSamplesPerSec = 11025;break;

case 1:

mciwavesetparms.nSamplesPerSec = 22050;break;

case 2:

mciwavesetparms.nSamplesPerSec = 44100;break;

}

mciwavesetparms.nAvgBytesPerSec = ((mciwavesetparms.wBitsPerSample)/8)*mciwavesetparms.nChannels

*mciwavesetparms.nSamplesPerSec;

mciwavesetparms.nBlockAlign = ((mciwavesetparms.wBitsPerSample)/8)*mciwavesetparms.nChannels;

mciSendCommand(m_DeviceID,MCI_SET,MCI_WAIT|MCI_WA VE_SET_FORMA TTAG| MCI_WA VE_SET_BITSPERSAMPLE|MCI_WA VE_SET_CHANNELS|

MCI_WA VE_SET_SAMPLESPERSEC|MCI_WA VE_SET_A VGBYTESPERSEC|MCI_WA VE_SET_BLOCKALIGN,(DWORD)(LPVOID)&mciwavesetparms);

MCI_RECORD_PARMS mcirecordparam;

mciSendCommand(m_DeviceID,MCI_RECORD,NULL,(DWORD)(LPMCI_RECORD_PA RMS)&mcirecordparam);

}

void CMiniDlg::Onsave()

{

// TODO: Add your control notification handler code here

GetDlgItem(IDC_record)->SetWindowText("录音");

GetDlgItem(IDC_record)->EnableWindow(TRUE);

mciSendCommand(m_DeviceID, MCI_STOP, NULL, NULL);

MCI_SA VE_PARMS mcisaveparms;

CString name;

GetDlgItem(IDC_name)->GetWindowText(name);

name="d:\\"+name;

mcisaveparms.lpfilename=(LPCSTR)name;

DWORD

saveerror=mciSendCommand(m_DeviceID,MCI_SA VE,MCI_SA VE_FILE|MCI_WAIT,(DWOR D)(LPVOID)&mcisaveparms);

if (!saveerror)

MessageBox("录音成功!");

mciSendCommand(m_DeviceID,MCI_CLOSE,NULL,NULL);

}

文件格式转换

void CMiniDlg::Onopenchange()

{

// TODO: Add your control notification handler code here

CString str;

CString Filter("选择wav文件:(*.wav)|*.wav");

CFileDialog fname(TRUE,NULL,NULL,OFN_HIDEREADONL Y | OFN_OVERWRITEPROMPT,Filter,NULL);

if(IDOK==fname.DoModal())

{

str=fname.GetFileName();

SetDlgItemText(IDC_formername,str);

}

if(m_songopen)

{

m_playstatu=FALSE;

mciSendCommand(m_DeviceID,MCI_CLOSE,NULL,NULL);

}

//打开设备

m_songopen=TRUE;

MCI_OPEN_PARMS mciopenparms;

mciopenparms.lpstrElementName = str;//播放路径

mciopenparms.lpstrDeviceType = NULL;//文件类型

mciSendCommand(0,

MCI_OPEN,MCI_DEVTYPE_W A VEFORM_AUDIO,(DWORD)(LPMCI_OPEN_PARMS)&mc iopenparms);//向MCI设备发送命令消息

m_DeviceID = mciopenparms.wDeviceID; //标识符返回应用程序

MCI_STATUS_PARMS mciStatusParam;

mciStatusParam.dwItem = MCI_WA VE_STA TUS_BITSPERSAMPLE;//声音位长

//MCI设备的状态信息(声音位长)

mciSendCommand(m_DeviceID, MCI_STATUS,MCI_WAIT|MCI_STA TUS_ITEM, (DWORD)(LPVOID)&mciStatusParam);

str.Format("%dbit",mciStatusParam.dwReturn);

SetDlgItemText(IDC_BITS,str);//返回位长

mciStatusParam.dwItem=MCI_WA VE_STATUS_SAMPLESPERSEC;

mciSendCommand(m_DeviceID,MCI_STA TUS,MCI_WAIT | MCI_STA TUS_ITEM,(DWORD)(LPVOID)&mciStatusParam);

str.Format("%dHz",mciStatusParam.dwReturn);

SetDlgItemText(IDC_speed,str);//返回采样频率

mciStatusParam.dwItem = MCI_WA VE_STA TUS_CHANNELS;//声道数

//MCI设备的状态信息(声道数)

mciSendCommand(m_DeviceID, MCI_STATUS,MCI_WAIT | MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciStatusParam);

str.Format("%d",mciStatusParam.dwReturn);

SetDlgItemText(IIDC_channel,str);//返回声道数

}

void CMiniDlg::Onexchange()

{

// TODO: Add your control notification handler code here

MCI_WA VE_SET_PARMS mciwavesetparms;

mciwavesetparms.wFormatTag = W A VE_FORMA T_PCM;

UpdateData(TRUE);

switch(m_dobit)

{

case 0:

mciwavesetparms.wBitsPerSample = 8;break;

case 1:

mciwavesetparms.wBitsPerSample = 16;break;

}

switch(m_dorate)

{

case 0:

mciwavesetparms.nSamplesPerSec = 11025;break;

case 1:

mciwavesetparms.nSamplesPerSec = 22050;break;

case 2:

mciwavesetparms.nSamplesPerSec = 44100;break;

}

mciwavesetparms.nAvgBytesPerSec = ((mciwavesetparms.wBitsPerSample)/8)*2 *mciwavesetparms.nSamplesPerSec;

mciwavesetparms.nBlockAlign = ((mciwavesetparms.wBitsPerSample)/8)*2;

mciSendCommand(m_DeviceID,MCI_SET,MCI_WA VE_SET_BITSPERSAMPLE|MCI_W A VE_SET_CHANNELS|

MCI_WA VE_SET_SAMPLESPERSEC|MCI_WA VE_SET_A VGBYTESPERSEC|MCI_WA IT|MCI_WAVE_SET_FORMATTAG|MCI_WA VE_SET_BLOCKALIGN,(DWORD)(LPVOID)& mciwavesetparms);

MCI_RECORD_PARMS mcirecordparam;

mciSendCommand(m_DeviceID,MCI_RECORD,MCI_RECORD_OVERWRITE,(DWORD )(LPMCI_RECORD_PARMS)&mcirecordparam);

// mciSendCommand(m_DeviceID, MCI_STOP, NULL, NULL);

MCI_SA VE_PARMS mcisaveparms;

CString name;

GetDlgItem(IDC_exchangename)->GetWindowText(name);

name="d:\\"+name;

mcisaveparms.lpfilename=(LPCSTR)name;

DWORD

saveerror=mciSendCommand(m_DeviceID,MCI_SA VE,MCI_SA VE_FILE|MCI_WAIT,(DWOR D)(LPVOID)&mcisaveparms);

if (!saveerror)

MessageBox("转换成功!");

mciSendCommand(m_DeviceID,MCI_CLOSE,NULL,NULL);

}

五、实验结果

1、初始界面

2、打开文件、播放

3、录音并保存

4、录音文件的播放

5、格式转换

6、转换格式后文件的播放

六、实验总结及体会

第一次着手用MFC进行可视化界面的开发,从原理上来说理解起来比较简单,但是实际操作起来还是有一定的难度。

通过本次试验,学习了windows音频处理的一些API,从对windows音频编程有了初步领悟。

基于51单片机的音乐播放器

基于51单片机的音乐播放器 余子健、刘胤、宋亮 摘要:本大作业是基于sst89e52rd2单片机制作的wav音乐播放器。该播放器可以播放存在sd卡中的音乐,通过对sd卡的读取并将数字信号送入单片机中,借助8位DA转换器TLC5620 变成模拟信号,经过放大器TDA2822放大交给扬声器发出最初读取的音频信号,实现音乐播放的功能。 关键词:SD卡,WAV文件,DA,音频放大 1背景 音乐随身听产品经过几年的发展,已经变得相当成熟。市场上可以购买到各类不同的音乐播放器,产品线涵盖了高中低不同档次。作为学习与研究,本作品尝试利用STI51开发板板载资源以及外搭的功率放大电路制作一台音乐播放器,能够播放通过计算机拷贝在SD卡(或MMC卡、TF卡)的根目录中的某一个WAV 文件。 2硬件设计 该音乐播放器硬件组成如下 本音乐播放器使用容量为2G的SD作为外部存储器 主控制器采用SST公司生产的SST89E58RDA,其40引脚封装的芯片功能模块如图1所示。芯片主要特想如下: ?兼容80C51系列,内置超级FLASH存储器的单片机 ?工作电压VDD=4.5~5V,5V工作电压时0-40MHz频率范围 ?1KB的内部RAM ?两块超级FLASH EEPROM,32KB的基本存储卡和8KB的二级存储块(扇区大小为128字节),二级存储块可用于存放掉电后要保存的数据,放在内部具有极强的抗干扰性?最大片外程序/数据地址空间为64KB ?全双工增强型UART,帧错误检测,自动地址识别 ?9个中断源,4个中端优先级 ?降低EMI模式(通过AUXR SFR不允许ALE输出时钟),确保了单片机的高抗干扰性?双DPTR指针(查表,寻址更方便)

用MFC做MP3音乐播放器——超实用

第一步: 打开vc6.0,建立如图所示mfc工程文件 选择基于对话框的确定

删除所有空间,建立如图所示对话框 属性如下: 播放IDC_open; 添加IDC_fileopen; 暂停IDC_pause; 删除IDC_del; 停止IDC_stop; 退出IDC_exit; 音乐名编辑框IDC_filename; 音量控制滑块IDC_SLIDER1; 音量控制编辑框IDC_vol; 建立类向导对应如下:

在工程文件,右键,插入,bitmap位图 引入你想插入的背景图,必须是bmp格式的

进入你的dlg.cpp文件 在onpaint函数下添加代码void CMp3Dlg::OnPaint()

{ if (IsIconic()) { CPaintDC dc(this); // device context for painting SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); // Center icon in client rectangle int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // Draw the icon dc.DrawIcon(x, y, m_hIcon); } else { //CDialog::OnPaint(); CPaintDC dc(this); CRect rect; GetClientRect(&rect); CDC dcMem; dcMem.CreateCompatibleDC(&dc); CBitmap bmpBackground; bmpBackground.LoadBitmap(IDB_BITMAP6); /IDB_BITMAP6是你的位图地址 BITMAP bitmap; bmpBackground.GetBitmap(&bitmap); CBitmap *pbmpOld=dcMem.SelectObject(&bmpBackground); dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bitmap.bmWidth,bitmap.bmHeight ,SRCCOPY); } } 编译运行,你就会看到背景有图片了。 插入-类,找到geneticclass,类名mp3.cpp

mp3音乐播放器c语言版

需求分析 1引言 随着社会的快速发展,现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,音乐成了我们生活工作中的一个重要的部分。而计算机的普及,让人们能让我们通过播放软件,能更好的听到我们喜欢的音乐。本文档就是为了能更好的设计出一个音乐播放去而编写的。 1.1编写目的: 为明确软件需求、安排项目与进度、组织软件开发与测试,撰写本文档。本文档功项目经理、设计人员、开发人员参考。 1.2项目背景项目背景项目背景项目背景 本项目由老师提出,由学生自主开发,实现播放现今主流的音乐MP3,wma文本格式。 开发软件名称:音乐播放器 项目开发者:岳世崇 1.3项目目的和目标 本项目的目的是开发一个可以播放主流的音乐文本格式,本设计的实现主要功能是播放MP3,wma 格式的音乐文件,并且能控制播放,暂停,停止,音量控制,选择上一曲,选择下一曲,各种播放模式,视觉外观,列表文件等多种播放控制,界面简明,操作简单。 1.4参考资料 百度文库,mci接口调用方法

c语言程序设计——清华大学出版社 c数据结构——清华大学出版社。 2.系统需求分析 根据项目,我们可以获得项目系统的基本需求,一下从不同角度来描述系统的需求。 2.1功能需求 系统的功能需求,我们分成三部分来概括,即播放器的基本控制需求,播放列表管理需求和播放器友好性需求。以下分别描述: 一:播放器的基本控制需求 (1)播放:选择歌曲进行播放。 (2)暂停:输入暂停对应的选项,播放暂停。 (3)继续播放:输入继续播放对应的选项,实现继续播放。 (4)停止播放:输入停止播放对应的选项,实现停止播放。 (5)音量控制:输入音量控制所对应的选项实现音量控制。 (6)上一首,下一首:输入上一首或者下一首对应的选项实现歌曲的切换。 (7)播放模式:列表循环播放,列表顺序播放,随机播放,单曲循环播放,单曲播放的选项,选择播放模式。 (8)删除歌曲:删除列表中不想出现的歌曲 (9)快进/快退:输入相应的选项进入快进和快退功能并实现。 (10)查看文件大小:输入查看文件的大小对应的选项,实现查看文件大小的功能 (11)列表之间的相互切换,可以选择不同路径下的不同播放列表 。 二:播放列表管理 1.添加歌曲:添加歌曲的时候可以在本播放列表下进行添加,也可以选择输入播放列

MP3播放器使用时的五大禁忌

MP3播放器使用时的五大禁忌!! 随意的在大街上走一圈,我们便能发现各式各样的MP3,配带在人们身上,陪着大家穿梭于城市的大街小巷。MP3所带来的无时无刻音乐享受正成为一种全新的时尚。然后在大家都在全民化使用MP3的时候,你知道一些使用MP3的一些禁忌么?可知道触犯这些禁忌在使用中即有可能对你的人身安全、或MP3带来极大的伤害。 而在国外的一些地方,有专家也指出使用MP3是致病的一个重要因素,随意的使用MP3,甚至可导致年轻人比上一代提早30年耳聋。下面我们就根据52硬件网上的一些资料,为大家介绍一下目前最主要的五种使用MP3一定要注意的禁忌。并为大家提出相应的解决方法。 禁忌一:音量调节得过大 很多用户听MP3的时候,总是喜欢听得屁较清楚,如果就尽量的把音量调高。而MP3一般而言最大音量可以高达80分贝,相当于一台割草机发出的声音,这种声音能直接损伤听力。MP3调到大音量带来的失真会使高音刺耳、中音不清、低音浑浊,而失真属于噪音的一种,也会给你的MP3和耳机带来一定的损伤。 建议:MP3的总音量控制在最大音量的1/4-1/3。此外,每次听完音乐之后,养成把音量调节旋钮关至最小的习惯。【资讯第一播报https://www.360docs.net/doc/9518779680.html,】 禁忌二:长时间收听 有些用户听MP3的时候,听到自己的喜欢听的歌曲总是喜欢一次听个够。听MP3要讲究劳逸结合,长时间听MP3会造成耳朵压力过重造成耳朵超负荷工作,致使听力下降损害健康。 建议:一般情况下根据所收听MP3音乐的类型的不同,长短也有不同。过分激烈的音乐,比如摇滚、快速流行音乐、大动态交响乐等,1小时左右应该休息一下,也就是听一张CD的长度应该休息15分钟左右。轻音乐,人声,较慢的流行音乐等可以100分钟左右休息一次。当然根据耳塞耳机器材的不同时间也有变化,上面说的时间是标准耳塞的长度,插入耳道的密闭式耳塞应该减少20%的时间,而耳机可以适当的增加15%左右的时间。 禁忌三:佩戴耳塞收听 MP3配置的耳塞式耳机被直接塞进耳朵里,能将声音信号提高9分贝,时间长了会对耳膜造成伤害。而还有为了追求强劲低频,很多耳塞使用长长的笛管式低音谐振和防漏音设计,并把耳塞的外形与耳朵的形状相配合,使耳塞与耳孔贴紧,直接利用耳朵的耳道作为低音共振腔,这样就能听到更强劲的音乐。 从技术上说,这当然是一种巧妙的设计,但它对耳朵带来的伤害是极为严重的。短期使用时,由于人体具有的修复功能,造成的影响还不大。但是长期使用,无疑会造成严重的听力损害。现在一些厂家也尽量迎合国内消费者的偏好,现在还推出了所谓的“特重低音”耳塞,用一个凸型的薄膜集中了声音能量对准耳孔,以增加低频效果。使用这些耳塞,无疑会造成更严重的伤害。【资讯第一播报https://www.360docs.net/doc/9518779680.html,】 建议:使用头戴式耳机显然比耳塞要好的多,这就是为什么以前销往欧洲的随身听大部分配备头戴式耳机的原因了,因为耳塞曾经对欧洲的年轻人造成伤害。 禁忌四:嘈杂环境中听MP3

基于android的MP3音乐播放器任务书

毕业设计任务书 通信工程本科专业(08级) 题目:基于Android的MP3音乐播放器设计 学生姓名:武亚军班级:通信工程3班学号:08250315 指导教师:郑玉峰(校内),胡莉(校外) 一、设计目标和内容: 本文就是基于Android系统上的一款MP3音乐播放器应用程序的设计与实现。Android是一个开源的系统,它底层是基于Linux的操作系统,本设计的MP3音乐播放器采用了Android开源系统技术,利用Java语言和Eclipse 编辑工具对播放器进行编写。同时给出了详细的系统设计过程、部分界面图及主要功能运行流程图,该音乐播放器集播放、暂停、停止、快进、上一首、下一首、音量调节、歌词显示等功能于一体,能在Android系统中能独立运行。 二、设计基本要求: (1)完成MP3音乐播放器软件的需求分析,系统方案设计,选择软件开发工具,进行系统实施的全过程。 (2)完成毕业设计题目“基于Android的MP3音乐播放器设计”,进行需求分析,概要设计,详细设计,独立完成所承担的设计,测试,并能运行使用。 论文符合设计要求与规范,具有科学性、逻辑性。 (3)系统完整,术语准确,语言清晰,内容充实,论述全面,有文档设计的说明等。主要具体内容如下: 介绍本设计的开发工具、运行环境,重点介绍设计的需求分析、总体设计、详细设计及主要实现技术。 (4)论文(所需材料、上机、实验、外文翻译)要求: 对本软件设计应完成相应的文档,如:需求分析中大量的相关材料的查询,软件开发工作中大量开发工具的学习,详细设计中系统实现流程等。 三、设计进度安排: 1)2012.3.1-2012.3.9:阅读查找相关设计文献资料,完成英文翻译和文献 综述; 2)2012.3.10-2012.3.16:根据资料和以往的开发、研究经验进行实验步骤 的概括和整个工程进程的描述;

MP3音乐播放器软件课程设计报告(MFC)

课程设计说明书 课程设计名称:软件综合课程设计 课程设计题目:音频播放器程序的设计与实现学院名称:信息工程学院

电子信息工程专业课程设计任务书 正文: 目录 引言 (5) 一、设计程序的目的与要求 (6)

目的 (6) 要求 (6) 二、方案实现与调试 (6) 总体设计 (6) 1、实现功能 (6) 2、功能模块图 (7) 详细设计 (7) 1、界面布局 (7) 2、各模块功能设计 (8) 2.1处理“打开”按钮 (9) 2.2处理“播放”按钮 (9) 2.3处理“暂停”按钮 (9) 2.4处理“停止”按钮 (9) 2.5处理“音量”按钮 (10) 2.6处理“退出”按钮 (10) 3 操作步骤 (10) 三、课程设计分析与总结 (11) 分析 (11) 总结 (11) 附录 (13) 关键程序清单 (13)

参考文献 (20) 引言 MP3播放器的设计是利用MFC应用程序、媒体控制接口MIC 的基本知识而设计的。 1.1 MFC简介 MFC是Visual C++是核心。MFC类库将所有图形用户界面的元素如窗口、菜单和按钮等都以类的形式进行了封装,MFC AppWizard 向导根据继承性利用MFC派生出自己的类,并对Windows应用程序进行了分解,利用MFC派生类对应用程序重新进行组装,同时还规定了应用程序中各个MFC派生类对象之间的相互联系,实现了标准Windows应用程序的功能,这就是向导生成的所谓MFC应用程序框架。每个MFC类都包括了一些函数,函数放到类中,符合C++编程方法。这些函数,必须通过类定义对象才能使用[1]。 1.2 MCI简介 MCI(Media Control Interface)媒体控制接口是MircroSoft提供的一组多媒体设备和文件的标准接口,它的好处是可以方便地控制绝大多数多媒体设备包括音频、视频、影碟、录像等多媒体设备,而不

MP3智能音乐播放系统6区说明书(内页)

- 1 - ※系统概述: M P 3智能音乐播放系统:采用世界最先进的微电脑控制、M P 3、F L A S H 录音技术。将广播自动播放、音源选播、录音下载/音频和麦克风录音存储等先进功能综合为一体。高标准的产品定位,多功能的超前设计,成为广播设备的典范之精品,达到国内领先水平。广泛适用于校园自动广播音乐打铃、外语广播教学听力考试系统。 ※综合功能: M P 3自动广播、智能分区广播、日常教学广播、消防紧急广播、背景音乐播放、外语教学及听力考试广播功能。 ※技术参数: 信噪比:>90d B ; 总谐波失真:<0.1%; 频响范围:20H z -18K ; 电压:220V ※前面板介绍(由于机型不同布局略有不同) 01、安装紧固锣丝; 02、电源指示灯; 03、监听扬声器; 04、U S B 音乐下载; 05、菜单向左控制选择键; 06、菜单向上控制选择键; 07、菜单向右控制选择键; 08、进入菜单控制、确定键; 09、监听音量控制旋; 10、外接输入音量控制旋钮; 11、M P 3输出音量控制旋钮; 12、M I C 输出音量控制旋钮; 13、电源开关控制键; 14、菜单向下控制选择键; 15、退出菜单控制、取消键; ※液晶显示屏介绍 01、系统星期指示; 03、下一定时分区指示; 05、下一定时曲目指示; 02、下一定时时间指示; 04、系统时间指示; 06、当前运行程序指示; ※后面板介绍(由于机型不同布局略有不同)

2 注:(短路输入端囗: 当这个端囗有短路信号输入时,本机会立刻播放你放在內存里SP A 文件夹内的一首曲目,SP A 这文件夹內只能放一首要紧急报警用的歌曲,其它需要定时播放的歌曲要放在SPA 文件夹外面,如歌曲的路径放错则定时播放将不执行。短路输出端囗: 这个端囗与功放电源和分区的动作同步,即当有定时点到时,这端囗即短路,当定时歌曲放完即断开,这端囗作用是用于控制电源时序器接多台功放之用。 ※设备连接图(由于机型不同布局略有不同) ※键盘锁 01、天线; 03、mic 孔; 05、分区接线座; 07、220v 电源接线座; 02、音频输入输出插孔; 04、短路输入输出紧急报警接口; 06、电源输出接线座;

手把手教您用MFC做MP3音乐播放器

打开vc6.0,建立如图所示mfc工程文件 选择基于对话框的确定 删除所有空间,建立如图所示对话框

属性如下: 播放IDC_open; 添加IDC_fileopen; 暂停IDC_pause; 删除IDC_del; 停止IDC_stop; 退出IDC_exit; 音乐名编辑框IDC_filename;音量控制滑块IDC_SLIDER1;音量控制编辑框IDC_vol; 建立类向导对应如下:

在工程文件,右键,插入,bitmap位图 引入你想插入的背景图,必须是bmp格式的 进入你的dlg.cpp文件

在onpaint函数下添加代码 void CMp3Dlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // device context for painting SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); // Center icon in client rectangle int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // Draw the icon dc.DrawIcon(x, y, m_hIcon);

MP3音乐播放器课程设计

Java程序设计 课程设计说明书 简单音乐播放器 起止日期:2011年12月6日至2012年1月4日 学生姓名XXX 班级软件工程093班学号09408300310 成绩 指导教师 计算机与通信学院 2011年12 月28日

目录 一、绪论 (1) 1.1 课题背景 (1) 1.2 课程设计目的 (1) 1.4 课程设计实验环境 (1) 1.5 课程设计要求 (1) 二、课程系统分析 (3) 2.1 系统分析 (3) 2.1 功能分析 (3) 三、系统设计 (4) 3.1 系统功能结构图 (4) 3.2 模块功能设计 (4) 3.2.1处理“添加”按钮 (4) 3.2.2处理“播放”按钮 (4) 3.2.3 处理“停止”按钮 (4) 3.2.4 处理“单曲循环”按钮 (5) 四、系统实现 (6) 4.1 系统主界面的实现 (6) 4.2 系统主要功能实现 (6) 4.2.1系统主界面及关键代码: (6) 4.2.2添加文件的界面和代码: (9) 4.2.3 播放音乐的界面和代码: (11) 4.2.4 单曲循环的界面和代码: (12) 五、设计总结 (15) 5.1 设计体会及评价 (15) 参考文献 (16) 致谢 (17)

一、绪论 1.1 课题背景 随着社会电子音乐文件的与日俱增,作为现在最流行的音乐文件*.mp3,*.wav文件的数量和规模也在比以往的任何时候要多,不论是电台DJ需要使用方便而有效地管理自己所使用的音乐文件,还是个人。在计算机日益普及的今天,若采用一套有效的音乐播放器。将自己所收藏的大量的音乐文件能随时随地的播放,这将方便于众用户听音乐的需求。通过使用本音乐播放器能为音乐爱好者带来意想不到的收获。 1.2 课程设计目的 《JAVA程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。本课程的程序设计专题实际是计算机相关专业学生学习完《JAVA程序设计》课程后,进行的一次全面的综合训练,JAVA程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。 1.4 课程设计实验环境 程序运行在安装有windows操作系统的计算机上(台式机和笔记本),兼容windows 2K/XP/Vista/7 计算机硬件要求: 1.CPU:1G; 2.内存:512M. ; 3.显卡:256M显存; 文件播放:需要安装有声卡、要求安装有语音库。 JA VA程序设计语言及相应的集成开发环境,J2SDK和ECLIPSE开发工具。 1.5 课程设计要求 按课程设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;

控制台C语言编写音乐播放器主要功能

#include "" #include"" #include<> #include<> #include<> #include"" #include"" #pragma comment(lib,"") #include "" #include"" #include"" #include "" int Order=1; D); printf(" %-20s ",info[i].song); printf(" %-10s\n",info[i].singer); printf(" -------------------------------------------------------\n"); } void Play() { if(NewOrder!=0) Order=Amount+1; char vol[10]="500"; char v[40]; char ch[200]; sprintf(ch,"open \"%s\" alias aa",info[Order-1].add); sprintf(v," setaudio aa volume to %s",vol); mciSendString(ch,NULL,0,NULL); mciSendString(v,NULL,0,NULL); mciSendString("play aa repeat",NULL,0,NULL); dd); mciSendString(ch,NULL,0,NULL); mciSendString(v,NULL,0,NULL); mciSendString("play aa ",NULL,0,NULL); dd); mciSendString(ch,NULL,0,NULL); mciSendString(v,NULL,0,NULL); mciSendString("play aa ",NULL,0,NULL); dd); mciSendString(ch,NULL,0,NULL);

基于单片机控制的mp3音乐播放器的设计

目录 1引言 (1) 2硬件设计 (2) 2.1硬件电路的设计框图 (2) 2.2硬件电路设计模块的选定 (2) 2.2.1中心模块 (2) 2.2.2播放模块 (3) 2.2.3显示模块 (4) 2.2.4电子琴模块 (4) 2.3各硬件电路的具体设计 (5) 2.3.1 AT89S52控制模块的设计 (5) 2.3.2按键模块的设计 (6) 2.3.3扬声器播放模块的设计 (7) 2.3.4 LCD显示电路的设计 (7) 2.3.5彩灯伴奏电路的设计 (8) 3软件设计 (9) 3.1单片机发声的基本原理 (9) 3.2设计的相关音乐说明 (9) 3.3切换原理 (10) 3.4音乐播放器软件程序设计 (10) 3.4.1按键扫描子程序设计 (10) 3.4.2 1ms延时程序设计 (14) 3.4.3 LCD显示子程序设计 (15) 3.4.4函数初始化子程序设计 (16) 3.4.5系统主程序设计 (17) 4结论 (19) 参考文献 (20) 附录一硬件原理图 (21)

附录二软件主程序 (22) 致谢 (32) 摘要 目前流行的MP3播放器的音质已相当好,但略感遗憾的是除了选择歌曲和显示歌名外,绝大部分播放器没有诸如随意弹奏乐曲、乐曲节奏跳动等功能。而随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一。要为现代人工作、生活提供更好的更方便的服务就需要从单片机技术着手,一切向着数字化控制、智能化控制方向发展。 本设计是采用单片机为核心设计的数字音乐播放器。本设计在实现音乐的播放及歌曲名显示等基本功能的基础上进行了扩展,添加了彩灯伴奏、按键弹奏、显示音乐节拍等功能。 本论文给出了系统方案的建立、硬件电路的详细设计及软件的程序实现。并通过软硬件的联立调试,验证了设计方案的可行性。 关键词:多功能;MP3音乐播放器;单片机;按键弹奏

MP3播放器使用参考说明书

Mp3使用手册 香港刀狼集团有限公司 国内工厂:深圳龙华白石龙工业园1栋5层 电话:0755—8148 8148 传真:0755—8148 8772 网站:https://www.360docs.net/doc/9518779680.html, 邮箱:xlx731@https://www.360docs.net/doc/9518779680.html, 工作QQ:184027716 联系人:姜小姐 刀狼科技★所向无敌 做中国最好的企业,做中国一流的品牌

本机是全新一代数码随身听设备。支持MP1、MP2、MP3、WMA、WMV、ASF、WAV等格式音乐。本机完美的音质、极高的可靠性和精巧的外观相得益彰,堪称大师级的作品,衷心的希望她能给您带来数码时代的超凡享受。 功能概述 ●精巧外型设计 方砖型外观设计,合适的手感(带外响)可选。 ●支持多种音频格式 如MP1、MP2、MP3、WMA、WMV、ASF、WAV等音乐格式。 ●固件升级功能 意外死机,由专业人员操作。 ●FM立体声收音机(可选功能,大部分机型无此功能) 强大自动搜索电台或手动搜索电台功能,可存储40个不同频率的本地电台,让您轻松收听电台节目,同时还可将你喜欢的节目录制下来 ●电话本功能 方便快捷,让你的通讯录时时在身旁。 ●电子文档 超长文字记录功能,可以把未读完的文章复制到移动盘内,随时阅读。 ●免驱动U盘功能 无需管理程序,可直接通过“我的电脑”中“可移动磁盘”进行文件操作,在WIN2000以上系统中无需安装驱动程序。 ●录音/复读(大多数机器无此功能) 可通过麦克风录音并保存为WAV格式的语音文档,可复读,实现真正的数码复读功能。 ●7种音色均衡器 自然、摇滚、流行、古典、柔和、爵士、重低音 ●多种播放模式 普通模式、单曲循环、、、全部循环、。 ●定时关机 可以设定关机时间,在不使用的情况下在你设置时间内自动关机,使您使用起来倍感方便。 ●全动画菜单 直观的动画菜单,配合相应文字的显示,使用起来得心应手! 声明事项 首先对您使用本公司的MP3数码随身听产品表示感谢! 在使用之前请先阅读此说明书,正确使用此产品。 为了更好的服务,本用户手册的内容可能变更。 因为产品的性能和功能而发生的变更,将不做另行通知。 如果产品的实际设置和使用方法与本手册不一致,请访问本公司网站查询最新产品信息。

基于51单片机的音乐播放器设计

基于51单片机的音乐播放器设计 基于51单片机的音乐播放器设计 【摘要】本音乐播放器是利用STC89C51单片机结合内部定时系统及数码管显示,设计一个简易的微电脑音乐盒。本文分析了基于51单片机的音乐播放器的硬件电路和软件的设计的具体过程,包括数据处理子程序的设计、显示子程序的设计,最后针对仿真过程及结果进行了具体的分析与说明。 【关键词】单片机音乐播放器 一、前言 单片机又称单片微控制器,它不是完成某一逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上,相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。 利用单片机实现音乐播放有很多优点,例如外部电路简单,控制方便、成本低等。本文分析了基于51单片机的音乐播放器的硬件电路和软件的设计的具体过程,运用89C51单片机定时器产生固定频率的方波信号,驱动喇叭发出旋律,按下按键可以演奏预先设置的歌曲旋律,最重要的是还可以通过程序设计输入特定 歌曲来演奏。

新型MP3播放器设计

简易模拟MP3播放器功能 一.目的: 1.通过学习,尝试编写歌曲简谱,加深对PWM音乐输出控制原理的认识和理解。 2.实验通过7段数码管显示播放曲目,提高对SPI接口的应用能力。 3.通过修改和添加《深入浅出ARM7》中的相关程序,控制歌曲的快进、快退、暂停、 循环播放、停止等实现简易模拟MP3播放器功能,增强对ARM的程序读写能力。 二.仪器: ARM开发板一块、 装有ADS1.2及EasyJTAG仿真器的电脑一台 三.原理: 1.SPI接口控制7段数码管显示: (1)SPI数据和时钟的相位关系: (2)SPI寄存器描述: ①SPI控制寄存器SPCR:

②SPI状态寄存器SPSR: 通过对相关寄存器的读写操作,即可控制主从机的数据传输。 2.PWM控制音乐输出: (1)两个匹配寄存器可用控制单边沿PWM输出。PWMMR0控制PWM周期速率,另一个匹配寄存器(PWMMR1~PWMMR6)控制PWM边沿的位置。 每个额外的单边沿PWM输出只需要一个匹配寄存器,因为所有PWM输 出的重复速率是相同的。多个单边控制PWM周期的开始,当PWMMR0 发生匹配时,都有一个上升沿。 (2)PWM管脚汇总: (3)PWM定时器控制寄存器PWMMTCR:

(4)PWM匹配寄存器PWMMR0—PWMMR6: PWM匹配寄存器值连续与PWM定时器计数TC值比较。当两个值相等时自动触发相应动作(产生中断、复位计数器或停止定时器)。具体执行什么动作油PWMMCR 寄存器控制。 (5)PWM锁存使能寄存器PWMLER: 四.实验程序: 1.实验流程图:

2.实验程序:(见附录) 五.调试结果: (跳线连接:PWMMR3,4,5,6输出口连接LED1~4; PWMMR1连接BEEP;) 当烧录程序后,数码管先显示0,然后按KEY3或KEY4可播放下一首或上一首歌曲,同时数码管更新显示曲目;放音过程中,按一次KEY5可实现放音暂停,再按KEY5继续放音;放音过程中,按KEY1键可复位播放当前歌曲,并实现重复播放。按KEY2键复位并停止播放音乐。放音过程中LED1~4伴随播放音调明暗变化。 六.调试总结及体会: 通过不断调试,终于实现了简易模拟MP3播放功能,调试过程是自己不断学习进步的过程,从中收获了很多。 通过对课本中关于“虹彩妹妹”音乐编程的分析,以及通过网络学习了相关的音乐简谱常识,掌握了用蜂鸣器实现播放音乐的编程方法。实验中“倩女幽魂”、“沉默是金”、“当年情”都是自己通过歌曲简谱编写的音乐程序。事物都是相互联系的。通过对音乐程序的编写,加深了对用PWM播放音乐原理的认识。 通过反复的调试,对AXD调试环境更加的熟悉,更加熟练了对其基本功能的应用。 同时,提高了ARM编程应用能力。能够对一些基本的错误快速识别,为今后的编程奠定一定基础。 附录: //跳线连接:PWMMR3,4,5,6输出口连接LED1~4; PWMMR1连接BEEP; #include "config.h" #include "music.h" #define HC595_CS (1 << 29) // P0.29口为74HC595的片选 #define AA 1<<12 // 歌曲曲谱-倩女幽魂 const uint32 HCMM1[] = { _LA, _SO, _MI, _MI, _MI, _RE, _DO, _SO, _LA, _DO, _LA, _LA, _DO1, _DO1,_LA, _LA, _MI, _DO1,_DO, _1TI, _DO, _1TI, _1LA, _DO1, _DO1,_MI,_SO, _DO,_DO,_LA,

Android简易音乐播放器的设计与实现

本科生毕业设计(论文) ( 2016 届) 设计(论文)题目 Android手机APP开发——音乐播放器作者刘晗 系、专业计算机科学与技术 班级1201 指导教师(职称)王李冬(副教授) 论文字数8000 论文完成时间2016年 4月10 日 杭州师范大学钱江学院教学部制

Android手机APP开发——音乐播放器 计算机科学与技术1201 刘晗指导教师王李冬 摘要:Android手机的APP开发越来越受到人们的关注。现今社会人们生活压力越来越大,人们更注重精神的需求。人们需要放松,需要释放,需要发泄,而音乐则是调节人们心情的一个有效资源。本文基于Androidstudio开发了一款面向Android手机的音乐播放器。该播放器包含本地音乐扫描、歌词匹配、音乐播放以及用户管理等功能。该APP具备界面优美、使用方便等优点,满足现金市场上的应用需求。 关键词:移动互联;Android;音乐播放器 APP Development on Android Mobile Phone- Music Player Computer Science and Technology class 1201 Liu Han Instructor: Wang Lidong Abstract: Android APP development has attracted more and more nowadays. Living pressure of modern society people is more and more serious, which made people pay more attention to mental demand. People need to relax, to release, need to vent, and the music is an effective resources to adjust mood for people . This article develops an Android music player based on Androidstudio. The player includes local music scan, matching lyrics, music playing and user management, and other functions. The APP has beautiful interface, convenient use, and meet the application requirements of cash in the market. Key words:Mobile Internet; Android.;Music player

基于嵌入式系统的MP3音乐播放器

基于嵌入式系统的MP3音乐播放器 本文介绍了基于ARM7嵌入式系统平台设计的一款带有文本阅览功能的多媒体音乐播放器。它能正确识别并显示存储在SD存储卡内的音频文件,并可通过液晶屏浏览存储在存储卡内的TXT 文档。该播放器选用具有出色音频解码能力的VS1053解码芯片,它支持320 Kb/s的MP3或256 Kb/s的WMA 音乐文件的播放。同时操作简单便捷,具有友好的人机界面。 一、系统硬件设计 系统主要由主控制器LPC2138、音频解码芯片VS1053、存储设备SD卡、显示设备OCM12864、输入设备键盘和系统供电电源组成。系统组成框图如图1所示。 图1 系统组成框图 主控系统LPC2138是支持实时仿真和跟踪的16/32位ARM7TDMI-STM CPU,并带有64 KB RAM 和512 KB的高速FLASH存储器。128位宽度的存储器接口和独特的加速结构使32位代码能够在最高时钟速率下运行。ARM7体系为32位构架,它在处理数据时相对于8位单片机效率明显提高,在处理文件系统所需要的大量的长整形数据的乘除运算时这种优势更为明显。同时它的硬件SPI,SSP总线控制器可以

使控制器方便的与外部扩展设备进行连接。它的性价比较高,很适合作为数字音乐播放系统的主控制器使用。 VS1053是VLSI Solution Oy公司生产的高性能、低功耗的以VS—DSP为内核的一款音频解码芯片,可轻松解码MP1,MP2,MP3,WMA,IMA ADPCM,General Midi 1,0gg Vorbis,LC—AAC和HE—AAC等音频格式的文件,片内集成有16 KB RAM。该芯片具有高信噪比DAC,功耗更低,并具有环绕立体声调节和高低频渲染等功能。采用VS1053芯片可以在不提高CPU 主频的情况下实现320 Kb/s的MP3文件或256 Kb/s的WMA文件的音频解码工作,并且音质上有了明显的提高,信噪比可达9O dB 以上。 OCM12864液晶屏可以显示字母、数字符号、中文字型及图形,具有绘图及文字画面混合显示功能。它提供3种控制接口,分别是8位微处理器接口,4位微处理器接口和串行接口。。 MP3声音输出的功放单元采用UTC2822D,输入电压在1.8~15 V之间,在正常发热状态下工作电流约为1.4 A。 二、系统软件设计 总体软件设计即系统运行过程中的主逻辑,负责整个系统运行过程中各个状态之间的转换,系统初始化完成以后,在音乐模式下,即可通过按键选择音乐目录中的音乐,解码WMA,MP3等格式的音频文件,并播放。程序流程图如图2所示。

控制台C语言编写音乐播放器主要功能

#include "FM_Main.h" #include"CTL.H" #include #include #include #include"GUI.h" #include"ERR_CheckEnter.h" #pragma comment(lib,"winmm.lib") #include "FM_CheckFile.c" #include"FM_Choose.c" #include"FM_List.c" #include "FM_Path.c" int Order=1; //初始时为第一首歌,随音乐切换而切换--nextsong() int NewOrder=0; int Amount = 0; //歌曲总量 int begin; //自定义列表中开始序号 int circulatemode=1; //循环模式 int pp=0; int begintemp=0; //存储自定义列表边界 int ww=-1; // 显示自定义列表当前播放信息 int upordown=1; //判断切歌方向 int firstup=0; int originvolume=500; //默认音量为500 char v[40]="setaudio aa volume to 500"; //初始化音量 void Init() { Order=1; NewOrder=0; Amount = 0; circulatemode=1; pp=0; begintemp=0; ww=-1; upordown=1; firstup=0; originvolume=500; } void ShowFileList() { if(begintemp==0) begintemp=begin; Amount = FM_CheckFile();

audio音乐播放器代码

无标题页



歌曲列表:

音乐播放器需求分析

音乐播放器需求分析 姓名:葛建豪 班级:计算机131 院:信息与网络工程学院 1.引言 1.1 编写目的 1.2 项目背景 1.3 参考资料 2.总体概述 2.1 项目目的和目标 2.2 软件运行环境 2.3 条件与限制 3.具体需求 3.1功能需求 3.2界面需求 3.3性能需求 3.5数据库需求 3.6可靠性要求

1.引言 音乐的魅力在生活中是极其大的,不同的国家、不同语言的人,可以从音乐中体会到相同的情感,可以加强人与人之间的联系,我们也可以从音乐中了解他国,因为音乐是人类共同的食粮,它也可以可以让身体放轻松,纾解压力,避免因自律神经紧张失调而导致慢性疾病的产生。可以,纾解忧郁苦闷的心情,甚至可以做到某些程度的心灵治疗。因此为使人们能够随时听到音乐,音乐播放器则应时被创造出来了,它为用户提供了便利,使得人们可以通过手机等设备在任何时候欣赏到音乐,为了使音乐播放器出现,必须依据手机为载体通过设计出一个基于android系统的音乐播放器。 1.1 编写目的 为软件的开发者能更好的理解和明确软件开发的需求,安排项目与进度、组织软件开发与测试,撰写本文档。本文档供项目组成员,软件开发人员参考。 1.2项目背景 本项目自行构思得出,由个人独立编写程序研究。 1.3参考资料 [1]张春田,苏育挺,张静《数字图像压缩编码》清华大学出版社

[2] 重庆大学出版社《软件工程》“软件计划与可行性分析” [3] 靳岩、姚尚明人民邮电出版社《Android开发入门与实践》 2. 总体概述 2.1 项目目的和目标 本项目的目的是开发一个可以播放主流的音乐文本格式的播放器。设计的主要实现功能是播放MP3等格式的音乐文件,并且能控制播放,暂停,停止,音量控制,选择上一曲,选择下一曲,更改皮肤,歌曲列表文件的管理操作,在线播放,读取存储卡播放等多种播放控制,界面简明,操作简单。 2.2 软件运行环境 操作系统:Android手机操作系统 支持环境:Android 2.2 -- 4.0版本 开发环境:Eclipse 7.5 、ADT 1.5 2.3 条件与限制 由于是个人独立开发,知识和能力达不到编写程序的程度。

相关文档
最新文档