优秀的毕业设计论文网
计算机 JAVA 电子信息 单片机 机械机电 模具 土木工程 建筑结构 论文
热门搜索词:网络 ASP.NET 汽车 电气 数控 PLC

VC403 基于VC++的mp3播放器的研究

以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
  
资料介绍:


进入21世纪以来,计算机技术的迅猛发展和音乐行业的发展,MP3格式也不断普及并逐渐成为一个让音乐界产生巨大震动的一个声音格式。现在互联网上可以找到各式各样的MP3编码软件和播放软件。MP3播放器由最先界面朴素、功能简单到今天各式各样界面、功能齐全的,说明MP3播放器受欢迎的程度以及使用的广度。
本课题基于VC++技术实现了一个Mp3播放器系统,主要解决了多种编码格式的解码和编码等技术问题,具有多种格式的混合播放、音频视频文件解码、界面简洁、功能齐全等特点,实现了歌曲播放、音量控制及歌曲管理等功能,验证了流媒体文件的编码解码技术,探索了多平台的媒体文件播放的问题,详细描述了系统功能模块和对重难点的解决方法。程序运行结果说明,该mp3播放器具有基本完备的功能,能保证歌曲播放、音量控制及歌曲管理。 think58 [资料来源:THINK58.com]

从第一代视窗操作系统Windows95问世至今,Windows下的mp3播放器也经历了好几代的革新。昔日的“蓝色窗口”已经变成了闪亮的“玻璃界面”,从只能播放本地音乐到能够直接通过网络欣赏在线音乐。如今的mp3播放器在对声音的解码处理能力、界面的美观程度、附加功能的扩展等方面都有了明显的提高。无论是国际主流的Windows Media Player 、Winamp 还是国产的优秀软件千千静听、酷狗等都在为MP3播放器的发展不断地进行着改革创新,使人们能够更好地享受mp3音乐带来的乐趣。
本课题研究的是基于Windows平台下的mp3播放器的设计与实现,主要实现下面功能:可以进行音量大小的控制;歌曲播放;歌曲管理。开发工具使用功能强大的MFC进行开发。

think58 [资料来源:http://www.THINK58.com]

[来源:http://think58.com]


直没有止步。
拿当下国内最为流行的MP3播放软件千千静听(英文名称:TTplayer)为例,该播放器集播放、音效、转换、歌词等众多功能于一身,被网友评为中国十大优秀软件之一,并且成为目前国内最受欢迎的音乐播放软件。由于其软件小、运行快、支持众多插件,自由编辑歌词,自由转换mp3、wma,ape,wav等多种音频格式,批量修改歌曲标签信息,个性化皮肤,多种视觉效果享受等特点而受到广大音乐爱好者的青睐。
如今较为成熟的MP3播放器也都已经不只只是听听MP3格式音乐的小软件了,能够兼容其他格式、直接进行在线听歌、下载同步歌词等功能也都日趋成熟。我们完全可以相信,MP3播放器的发展前景仍是巨大的。
1.3课题研究内容
本课题需要完成设计的MP3播放器得实现播放MP3格式音乐文件的一些常规功能,用户可以通过点击软件界面上的按钮来完成相应的功能操作。
    播放器的设计主要包括以下几个方面:
(1)按钮方面:软件界面有打开文件、播放、暂停、快进、快退、音量调节、最小化菜单、还原和退出;
(2)内容方面:该播放器将根据歌曲的播放长短显示总共播放时间、当前播放时间;
(3)背景方面:该播放器将使用自制图片做为整个软件的背景,各图标将使用美观的贴图制成; 内容来自think58

[来源:http://think58.com]


(4)程序方面:该播放器将使用VC语言进行编码制作,实现Windows环境下对MP3格式音乐文件的播放。程序将分为主程序部分和界面设计程序部分,通过调用MCI的API函数实现对MP3音乐格式文件的解码,然后再完成windows下的音乐播放等操作。 think58 [来源:http://www.think58.com]


采用C/S架构,选择适当的数据库平台,可以实现数据库数据的真正“统一”,C/S结构下的多用户应用可以更好(比如更完善的用户共享特性,用户管理,以及更好地平衡服务器与客户机之间的负荷,大幅度降低网络传输的负荷等)。C/S结构是目前技术条件下,能较好适应不确定和变化的需求环境的比较现实的方案。它可以令我们以较低的投入,实现将易变与稳定的要素分离,快速地增添和替换“瘦小”而互相独立的前台应用,保持数据的连续性和继承性。此外,从用户的现有资源的延续利用与新增投入,及开发的成本和难度看,采用C/S结构,也是比较适中、现实的选择。

think58 [资料来源:http://THINK58.com]

[资料来源:http://www.THINK58.com]

2.3 开发工具介绍
2.3.1 Visual C++ 6.0简介
Visual C++是Windows环境下最优秀的C++编译器之一,它是Microsoft公司开发的Visual Studio 系列产品的一部分。 Visual C++.NET 2004 是目前此系列产品的最新版本,但是由于Visual C++ 6.0小巧易用,对计算机的软硬件环境要求比较低,而且能够胜任几乎全部的Windows应用程序的开发工作,所以大部分软件开发公司主要的开发平台还是Visual C++ 6.0。
2.3.2 MFC简介
Microsoft提供的MFC是放置Windows API的面向对象的包装的C++类库。MFC6.0版本封装了大约200个类,其中的一些用户可以直接使用,而别一些则主要作为用户自己的类的基础类。一些MFC类极其简单例如CPoint类,它代表一个点(一个由X和Y坐标定义的位置)。有些类较复杂,例如CWnd类,它封装了窗口的功能。在MFC程序中,用户并不经常直接调用Windows API;而是从MFC类创建对象并调用发球这些对象的成员函数。在类库中定义的成员函数有几百个,其中许多是Windows API的简单封装,甚至与相应的API函数具有一样的名字。这种命名约定的一个明显好处是它加速了C程序员转变为MFC程序员的过程。想要移动一个窗口?一个C程序员可能会调用SetWindowPos API 函数。但实际上MFC也SetWindowPos。它是CWnd类的一个成员,这可以理解为将窗口作为主个对象,而SetWindowPos是希望在该对象上进行的操作。 内容来自think58 [资料来源:THINK58.com]
MFC也是一个应用程序的框架结构。MFC不仅仅是一个类集合,它还帮助定义了应用程序的结构并为应用程序处理许多杂务。以CWinApp类为例子,该类代表应用程序自身,MFC几乎封装了程序操作的所有方面框架结构提供WinMain函数,而WinMain反过来调用程序对象的成员函数使程序运行下去。Run是WinMain调用的一个CWinApp成员函数,它提供了一个消息循环,将消息送到应该程序的窗口。框架结构还提供了抽象功能,它远远超出了WindowsAPI的功能。例如:MFC的文档/视力体系结构在API上建造了一个功能强大的基础结构,它把程序中数据的图形表示(或称为视图)与数据本身分开。这种抽象对API而言完全是陌生的,而且在MFC框架结构之外或相似类库中也不存在。 think58.com

[来源:http://www.think58.com]


5.4.1  程序界面初始化
程序模拟MediaPlayer的界面,所以最开始的时候我已经截图了真实MediaPlayer的截图,然后在前面已经导入到了资源管理器中。程序一打开就得显示MediaPlayer的样子,所以它需要加载位图资源到界面上然后显示,其代码如下:
void CMediaPlayer11Dlg::DrawMainPicture(CDC *pDC)
{
 CDC MemDC;
 CBitmap bitmap;
 BITMAP m_bitmap; [资料来源:http://think58.com]

 bitmap.LoadBitmap(IDB_MAIN);//加载背景图片
 bitmap.GetBitmap(&m_bitmap);
 MemDC.CreateCompatibleDC(pDC);
 MemDC.SelectObject(&bitmap);
 
 pDC->BitBlt(0,0,m_bitmap.bmWidth,m_bitmap.bmHeight,&MemDC,
  0,0,SRCCOPY);//显示 copyright think58 [版权所有:http://think58.com]

 bitmap.DeleteObject();
 MemDC.DeleteDC();
} copyright think58 [来源:http://www.think58.com]

此函数是在窗体的void CMediaPlayer11Dlg::OnPaint()函数中被调用的。运行后的效果如下:
 
图6-6 MP3播放器初始界面

[资料来源:http://www.THINK58.com]

但这样的界面并不是我们想要的,我们还需要显示菜单栏图6-7以及播放列表图6-8等:
 
图6-7 MP3播放器菜单栏界面
 
图6-8 MP3播放器播放列表界面 think58

[资料来源:http://THINK58.com]

为了达到这些效果,我编写了InitButtons(),InitRect(),m_playList. DrawText()这三个函数来分别初始化界面上的各个控件,具体代码如下:
void CMediaPlayer11Dlg::InitButtons()
{
 CRect rect;
 rect.right=1000;
 rect.bottom=1000; 内容来自think58 [资料来源:http://think58.com]

 rect.left=545;
 rect.top=6;
 m_btnMin.MoveWindow(&rect,TRUE);
 m_btnMin.Init(IDB_MIN_N,IDB_MIN_S,"最小化"); [资料来源:www.THINK58.com]

 rect.left +=19;
 m_btnMax.MoveWindow(&rect,TRUE);
 m_btnMax.Init(IDB_MAX_N,IDB_MAX_S,"最大化"); 本文来自think58 [资料来源:THINK58.com]

 rect.left +=19;
 m_btnClose.MoveWindow(&rect,TRUE);
 m_btnClose.Init(IDB_EXIT_N,IDB_EXIT_S,"关闭");

[来源:http://think58.com]

 rect.left=68;
 rect.top=32;
 m_btnControlMenu.MoveWindow(&rect,TRUE);
 m_btnControlMenu.Init(IDB_CONCTOLMENU_N,IDB_CONCTOLMENU_S,"控制菜单");
 
 rect.left=8;
 rect.top=26;
 m_btnPlaySel.MoveWindow(&rect,TRUE);
 m_btnPlaySel.Init(IDB_PLAYSEL_N,IDB_PLAYSEL_S,"正在播放"); think58.com

[来源:http://think58.com]

 rect.left+=82;
 m_btnListSel.MoveWindow(&rect,TRUE);
 m_btnListSel.Init(IDB_LISTSEL_N,IDB_LISTSEL_S,"媒体库");
 
 rect.left+=65;
 m_btnRecordSel.MoveWindow(&rect,TRUE);
 m_btnRecordSel.Init(IDB_RECORDSEL_N,IDB_RECORDSEL_S,"翻录"); think58.com

[来源:http://think58.com]

 rect.left+=65;
 m_btnCopySel.MoveWindow(&rect,TRUE);
 m_btnCopySel.Init(IDB_COPYSEL_N,IDB_COPYSEL_S,"刻录"); [资料来源:www.THINK58.com]

 rect.left+=65;
 m_btnSynSel.MoveWindow(&rect,TRUE);
 m_btnSynSel.Init(IDB_SYNSEL_N,IDB_SYNSEL_S,"同步"); 内容来自think58 [资料来源:http://www.THINK58.com]

 rect.left+=65;
 m_btnGuideSel.MoveWindow(&rect,TRUE);
 m_btnGuideSel.Init(IDB_GUIDESEL_N,IDB_GUIDESEL_S,"指南");

[来源:http://think58.com]


    rect.left=8;
 rect.top=412;
 m_btnPlay.MoveWindow(&rect,TRUE);
 m_btnPlay.Init(IDB_PLAY_N,IDB_PLAY_S,"播放");

copyright think58 [来源:http://think58.com]

[资料来源:http://www.THINK58.com]

 rect.left+=32;
 rect.top=416;
 m_btnStop.MoveWindow(&rect,TRUE);
 m_btnStop.Init(IDB_STOP_N,IDB_STOP_S,"停止");

think58好,好think58

[来源:http://www.think58.com]

[资料来源:THINK58.com]

 rect.left+=35;
 m_btnPre.MoveWindow(&rect,TRUE);
 m_btnPre.Init(IDB_PRE_N,IDB_PRE_S,"上一首"); think58.com [资料来源:http://think58.com]

 rect.left+=30;
 m_btnNext.MoveWindow(&rect,TRUE);
 m_btnNext.Init(IDB_NEXT_N,IDB_NEXT_S,"下一首");

本文来自think58

[来源:http://www.think58.com]

[资料来源:http://www.THINK58.com]

 rect.left+=35;
 m_btnVolControl.MoveWindow(&rect,TRUE);
 m_btnVolControl.Init(IDB_VOLCONTROL_N,IDB_VOLCONTROL_S,"静音"); [资料来源:http://think58.com]

 rect.left=174;
 rect.top=423;
 m_btnVolumeSlide.MoveWindow(&rect,TRUE);
 m_btnVolumeSlide.Init(IDB_VOLSLIDE,IDB_VOL_N,"音量"); copyright think58 [资料来源:http://THINK58.com]

 rect.left=39;
 rect.top=397;
 m_btnProcessSlide.MoveWindow(&rect,TRUE);
 m_btnProcessSlide.Init(IDB_PROCESSSLIDE,IDB_PRGSLIDE,"定位");

[资料来源:http://think58.com]

 rect.left=420;
 rect.top=65;
 m_btnListMenu.MoveWindow(&rect,TRUE);
 m_btnListMenu.Init(IDB_LISTMENU,IDB_LISTMENU,"列表菜单");
} 内容来自think58 [资料来源:http://THINK58.com]

参考文献
[1] 熊开盛,董兆鑫, MP3音频编码算法研究 The Research of MPEG Audio Layer Ⅲ Audio Coding Arithmetic  期刊:电脑与电信COMPUTER & TELECOMMUNICATION 2006年 第12期
[2] 张飞碧, MPEG数字视音频压缩编码原理及应用 MPEG Digital Audio Pressure Coding Technology  期刊:演艺设备与科技ENTERTAINMENT TECHNOLOGY 2006年 第01期
[3] 张瑾,郑伟,张丁,王匡, 一种新的MPEG音频解码方案及算法优化 A Novel MPEG Audio Decoder Design and Improved Algorithm  期刊-核心期刊:中国有线电视CHINA DIGITAL CABLE TV 2005年 第14期
[4] 杨俊,蔡宣平,颜飞翔, PC Windows环境下数字音频的软件解码与播出技术研究 Software Implementation of Digital Audio Decoding and Playback Technology with Windows System on PC  期刊-核心期刊:电声技术AUDIO ENGINEERING 2001年 第03期
[5]http://baike.baidu.com/view/15989.html?wtp=tt  WinAmp简介
[6]http://baike.baidu.com/view/41173.htm   Windows Media Player简介
[7]http://baike.baidu.com/view/6725.htm    千千静听 简介
[8]Davis P. A Tutorial on MPEG/Audio Compression .IEEE Multimedia, 1995, :60-74 think58.com

[来源:http://think58.com]


[9] 新秀千千静听挑战Winamp  刊名:网络与信息  2005 /03 /19  英文刊名:NETWORK & INFORMATION
[10] 伍兴艳 ,皮亦鸣,一种嵌入式MP3音频点播系统的设计与实现  英文标题:Design and implement of an embedded MP3 audio-on-demand system  刊名:国外电子元器件2008 /10 /16
[11] 江巍,杨军,罗岚,胡晨,MP3定点解码算法的设计与实现  英文标题:Design and Implementation of Fixed-point Algorithm for MP3 Audio Decoder  刊名:计算机工程2004 年30 卷15期
[12]  "看"得见的好声音超酷MP3播放软件PowerMP3  刊名:数字通信 英文刊名:DIGITAL COMMUNICATION 2006年15期
[13] 汪勇,熊前兴,MP3文件格式解析 英文标题:FILE FORMAT ANALYSIS OF MP3  刊名:计算机应用与软件2004 年21 卷12期
[14] MP3相关术语  刊名:软件工程师  英文刊名:SOFTWARE ENGINEER  2005年02期
[15] 李菁菁,MP3软件解码器的研究与实现  数据库名:中国学位论文全文数据库
copyright think58 [资料来源:http://THINK58.com]