论文终结版文档格式.docx
- 文档编号:17599169
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:28
- 大小:804.55KB
论文终结版文档格式.docx
《论文终结版文档格式.docx》由会员分享,可在线阅读,更多相关《论文终结版文档格式.docx(28页珍藏版)》请在冰豆网上搜索。
播放列表;
音频;
视频
Mediaplayerdesignandfunctionrealizationbasedonvc
Abstract
Commonmultimediasoftwareshouldhavetheirowncharacteristics,butalmosteverynosatisfactoryway.Mytopicis"
mediaplayersoftwaredesign"
developmenttoolbasedonVC++,thefirstistheexistingmediaandmediaplayer,andamultimediaplayingtheirdetaileddesignofmediaplayer.GameplayerisanintegrateddevelopmentenvironmentbasedonMFC,usingthesystemMCI(Mediacontrollerinterface)commandinterfaceprogramming,issmall,supportmultipleformat,occupyinglesssystemresourcestosupporttheplaylisteditor,supportavarietyofvideoformatssuchasfunctionaladvantages.
Keywords:
mediaplayer;
MCI;
playlist;
audio;
video
目录
1绪论1
1.1课题研究的目的和术发展的现状1
1.1.1研究本课题的目的1
1.1.2技术应用的基本现状1
1.1.3论文完成的主要工作2
1.1.4本课题中的重点2
1.1.5基本功能描述2
1.2媒体格式简介.3
1.2.1什么是WMFSDK3
1.2.2WMFSDK体系结构3
1.2.3生成器结构3
1.2.4读取器结构4
1.2.5WMFSDK编程开发环境配置4
2软件开发与设计5
2.1设计思路5
2.2设计步骤7
2.3界面设计10
2.4关键功能的实现13
3系统测试22
3.1测试目的22
3.2测试环境22
3.3检测报告22
3.4测试结果24
4结论.27
致谢.28
参考文献.26
1绪论
多媒体技术的概念及多媒体技术在十九年代早期的应用,经过十年多的发展,随着计算机科学的发展和网络的普及和多媒体技术的发展,已成为计算机领域的一个热点技术的发展,各种媒体格式的视图,如何简单和方便的播放各种媒体已经成为人们普遍关注的问题,和媒体播放器的开发已非常重要。
1.1课题研究的目的和技术发展的现状
1.1.1研究本课题的目的
随着技术的发展,多媒体素材类型也有所增加,包括音频,视频,图像,动画,音频和视频,因为图像和其他大的信息容量,在过去的硬件限制,多媒体应用并不广泛,随着硬件技术的不断提高,多媒体技术已广泛用于各类人才。
多媒体课件,网络课程的发展,网站,软件,项目管理和要求的多媒体材料的使用,所以为多媒体的发展准备了一个实际的意义,与其他多媒体播放器相比,这是一个强大的媒体播放器,占用空间小,它是密切结合现有的多媒体资源的应用现状,不仅具有直观感强,不失一般性。
1.1.2技术应用的基本现状
微软公司于1998推出的VisualC++6,它是一个平台,支持Win32应用程序(应用程序),服务(服务)和控制(控制)的可视化编程的集成环境。
并用VC++5最大的区别是,它有更强大的功能,MSDN(微软开发的网络)提供VC++6包括所有微软程序产品在线帮助;
此外,可用的对象的成员函数的参数类型的类成员变量和成员函数,并可以在屏幕上动态地显示,使用户不用记得那些复杂的无聊的函数名和复杂的参数,使编程更容易使用。
VC++6是微软的旗舰产品,功能强大且编程获得程序的偏好。
多媒体技术进行了以下方面的有效应用:
①多媒体管理信息系统,显示系统。
②多媒体电子出版物(标题)。
③计算机辅助教学,教育和培训的设计与制作;
电脑艺术;
电脑游戏娱乐;
双向电影;
协同工作。
有三个主要趋势:
进一步提高计算机支持的协同工作环境下的智能;
多媒体技术;
多媒体信息实时处理和压缩算法集成到CPU。
1.1.3论文完成的主要工作
根据研究,基于VC的MFC对话框的媒体播放器的开发,利用WindowsMCI(媒体控制接口)处理控件,VC6与ActiveX控件——activemoviecontrol对象来实现各种格式的媒体播放和程序界面。
首先确定所要解决的问题是明确的名称的MCI函数和命令的消息类型和功能;
其次是流媒体的具体过程的分析,在公开的媒体装置的应用需要做的事情,所以在加入过程支持代码的应用程序;
一个粗略的轮廓,在应用程序的程序(最好的画流程图),开始考虑设计程序框架,设计应用程序的外观;
最后也是最关键的是编写代码以显示此功能的媒体播放器的基本实现,再次是程序的调试和完善。
1.1.4本课题中的重点
本课题中的重点是在ActiveMovie控件的应用,动态控制EM电影是微软公司推出的多媒体编程控制提供音频和视频媒体文件非常声音的播放,可以支持多种文件格式,普通的WAV文件和AVI文件的视频文件MPEG压缩格式,可以正常播放。
控件可以自动区分基于文件扩展名的设备类型,并完成相应的控制。
因此,如果你的应用程序准备提供多媒体支持,然后使用ActiveMovie控件是一个好主意。
事实上,许多优秀的多媒体应用,多媒体播放是使用ActiveMovie控件实现设计的应用精心程序的用户界面,我们可以开发一个功能齐全,美观大方,具有高水平的多媒体播放器。
使用一个activemovie控制多媒体应用的发展可以大大提高多媒体开发效率,只要设置控件的文件属性,名,来确定控制开放媒体文件名,然后执行run方法可以播放媒体文件;
通过设置选择。
最后用鼠标点击按钮完成播放,停止,暂停,快进,快退等功能。
1.1.5基本功能描述
多媒体播放软件现在几乎成为每个家庭电脑安装必要的软件,比较流行的
有迅雷播放器,Windows媒体播放器和快播、XX影音等等,可以播放MP3,RM,RMVB,MPEG,由软件DAT等格式的多媒体文件。
这些商业软件的功能已经做得相当完美,也符合大多数普通消费者的胃口,但是很多人的电脑安装不同的播放器,因为不同的播放器有不同的特点,并不是每个人都连接到一个播放器,设计一个符合自己的习惯的播放器是可行的。
VC++6.0强大的MFC、AppWizard、ClassWizard,方便使用,类似向导和各种控件可以方便地建立各种应用程序。
同时,要实现更先进和复杂的功能,还可利用资源的ActiveX控件,在现有资源的控制,可以节省自己编程的复杂的过程,从而实现更先进的功能。
本课程是专为使用VC6控制一个ActiveX——Windows媒体播放器控件,建立自己的多媒体播放器。
该多媒体播放器打开该文件,播放,暂停,快进,全屏幕,调整音量,倒带和其他基本的播放功能,可以播放:
MP3,WMA,*,*,*,*,MDI,WAV,AVI,*。
视频和音频文件格式,如DAT。
同时也使隐藏的播放列表,可以选择播放,随机顺序、单周期随机播放,在三个方面:
将单周期随机有打开的文件,播放,暂停,在播放模式下关闭,是个人的选择项。
1.2媒体格式简介
1.2.1什么是WMFSDK
WMFSDK是微软WindowsMedia技术的重要组成部分,它基于COM技术,可以方便地开发具有高性能要求的多媒体应用程序。
对WMFSDK关键技术作了概括介绍,并给出了采用VisualC++编程语言开发视频播放器的软件实现过程。
WMFSDK采用了面向对象的设计,是一套完全基于COM组件模型的高级开发包。
它引入的生成器,读取器,器等对象屏蔽了ASF数据格式、传输控制等较为底层的流媒体技术实现细节,留下比较上层的编程接口给开发者使用。
1.2.2WMFSDK体系结构
WindowsMediaFormatSDK具有许多处理ASF文件的功能,但其核心功能是读写文件。
1.2.3生成器结构
使用WindowsMediaFormatSDK构建应用程序将生成器源介质样品的传递。
生成器设置指定的配置文件的目标代码的文件。
配置文件定义的编码格式的文件,包括每个流程的详细信息和如何处理信息流。
大多数的音频和视频流
的媒体编码解码器处理。
然而,代码首先与转换器来处理数据,准备压缩。
当样品被放置在一个文件中,然后转移到多路复用器,多路复用器根据介绍时间从所有流的行扫描采样和数据包。
比特流复用器的创建和发送到接收器,用于
治疗的最终目的的I/O接收机,无论是在磁盘或互联网或其他网络播放的文件。
1.2.4读取器结构
读取过程和数据写入过程基本相同,但顺序是相反的。
读取器连接到源,源可以是一个文件,网络连接或自定义源。
分流处理文件的数据部分,数据被划分成一个流的样本,然后解压缩的样品(如果启用DRM保护),并通过相应的处理Windows媒体编码解码器。
默认情况下,读取器会自动选择合适的解码解压缩的ASF数据流。
1.2.5WMFSDK编程开发环境配置
WMF的SDK是唯一适合的C/C++编程语言,开发平台可以在VC++6或VisualStudio.NET。
本文vc6.0.openVC6的设置方法,选择菜单命令工具→选项,单击“目录,选择包含文件显示目录中的下拉菜单,然后安装路径,在VCSDK标准路径。
VC6.0工程应用的开发,调试版本还需要以下设置:
选择在项目设置菜单命令,输入标签链接,一般选择类别的下拉列表,winmm.lib和wmvcore.lib文件添加到对象/库模块忽略所有默认库并选择。
2软件开发与设计
2.1设计思路
根据每个按钮的控制功能和Windows媒体播放器控件的特点,首先要
cwmpcontrol在头文件中。
cwmpsettings对象,结合和定义,需要在程序的后面的调用类的成员函数。
打开文件按钮,调用的通用文件对话框类,并使用选定的文件到播放列表addstring列表功能,在MFC的研究。
对一些基本功能的实现,如播放,暂停,音量,体积缩小,全屏幕,静音,快进,快退等功能,一个成员函数的调用cwmpcontrol和cwmpplayer类实现。
播放列表的大小和方向,本设计使用SetWindowPos函数来改变一个窗口弹出,和一些对保存列表,删除列表的实现相关的功能,删除当前的功能。
播放列表,我还增加了播放模式选择功能,提供玩,然后循环周期,单周期三个选择的OnTimer函数和函数能够控制播放模式的运用。
根据上述思路设计,流程图如图2.1所示:
N
Y
N
图2.1流程图
2.2.设计步骤
首先,打开MicrosoftVisualStudio6.0软件,新建一个工程如图2-2所示,
图2.2工程建立
以kejian为工程名,然后将此工程定义为基于对话框的MFC应用程序如图2.3所示,点击完成就成功建立了一个基于对话框的工程。
在建立好工程之后,首先是WindowsMediaPlayer控件的添加:
建立空白对话框之后,在对话框的空白处单击鼠标右键,选择InsertActiveXControl菜
图2.3
单项。
选择WindowsMediaPlayer控件。
加入控件后,此时该控件与该对话框并没
有联系,需要对其进行变量的关联。
添加完该控件之后可以发现,该控件与右边控件工具栏添加的控件的形式与功能完全不同,是一种更为高级的控件,将该控件名改为IDC_player,
如图2.5所示。
图2.6WindowsMediaPlayer控件
虽然已已经添加了该控件,但是可以发现,改控件没有与工程中的对话框发生任何联系,所以需要对其进行变量的关联,所属类为Kejian类,变量类型为CWPPlayer4如图2.7所示。
图2.7关联变量
关联变量之后,才算是真正的添加完了该控件,可以发现在关联变量之后,控件工具栏多了WindowsMediaPlayer控件的选项,并且在SourceFiles中增加了17个类,相应的头文件也增加了17个,如图2.8所示。
图2.8添加控件后的变化
一类重要的cwmpplayer4,cwmpcontrols,cwmpmedia,cwmpplaylist,cwmpsettings五类。
该cwmpplayer4类是呼叫的其他类型的主要对象以及基本的控制功能,提供与Windows媒体播放器控件交互的一种基本方法,其中的成员函数也可以从其他相关对象的情况下获得的部分;
cwmpcontrols主要是控制多个操作;
类cwmpmedia主要是一些媒体文件资源;
cwmpplaylist主要播放操作;
cwmpsettings主要是一些基本的集合操作的媒体文件。
为控制添加和内部功能的认识需要更多的时间来完成这个熟悉的,添加关键控制后,接口设计。
2.3.1界面设计
首先是打开按钮,用来打开此媒体文件。
然后,播放,暂停,快进,快退,全屏,音量,体积减小,静音,停止播放,退出按钮。
变量的相关性,于ID的修改在表2-1,表2-2所示:
表2-1:
控件ID以及关联变量
控件Caption
按钮ID
关联变量类型
关联变量名称
WMPlayer
IDC_player
CWMPlayer4
m_ZhuangWenfeng
表2-2控件ID以及对应响应函数
消息响应函数
打开
IDC_open
Onopen
播放
IDC_play
Onplay
暂停
IDC_pause
Onpause
全屏
IDC_fullscreen
Onfullscreen
播放列表
IDC_list
Onlist
列表框
IDC_LIST1
OnDblclkList1
快进
IDC_fastforward
Onfastforward
快退
IDC_fastreverse
Onfastreverse
+(音量增加)
IDC_addvol
Onaddvol
-(音量减小)
IDC_decvol
Ondecvol
静音
IDC_mute
Onmute
表2-3控件ID以及对应响应函数
停止
IDC_stop
Onstop
保存列表
IDC_save
Onsave
删除列表
IDC_dellist
Ondellist
删除当前
IDC_dellistcur
Ondellistcur
退出
IDC_exit
Onexit
关于
IDC_about
Onabout
以上是关联的对象对应的控制,除了相应的控制,也需要一些有17种Windows媒体播放器控件生成的类的对象被定义,和成员函数的定义,和一个对象的成员声明放在头文件中,本设计主要有3步,因为设计出提醒弹出框,所以他们会在它的定义,如表2-3所示
表2-4其他类及对应对象
类名
对象名
CWMPControls
m_Control
CString
m_PathName
CWMPSettings
m_Setting
Check
CCheck
除了各控制变量的函数和响应消息,以及相关的对话框类的消息响应函数,因为播放模式选择功能添加这样的设计,因此需要使用wm_timer消息响应函数和函数OnTimer()和()函数来实现这一功能,对话框的消息响应程序书写功能的相关性。
添加的方法如图2.9所示。
图2.9添加WM_TIMER消息响应函数
图2.10多媒体播放器界面
最终得到各个空间分布后的界面如图2.10所示。
图2.10多媒体播放器interfacein除上述主对话框,我也在aboutbox进行了重新设计,还做了一个检查”对话框,在其中aboutbox如图2.10所示。
检查对话框退出按钮,弹出提醒窗口,当用户点击,主要是用来防止用户不小心按下关闭按钮使程序关闭,这有利于用户,加强友好的软件,如图2.11所示。
图2.11修改后的ABOUTBOX对话框
于菜单的制作,首先,需要在ResourceView中加入资源Menu,后增加对应的菜单项以及菜单自己布局,下拉菜单则需要和按钮关联,其方法是将其ID和按钮的ID一样,菜单布局图2.12所示。
图2.12菜单栏
2.4关键功能的实现
对于各个函数的介绍,本文以关键代码以及注释的方式进行介绍,首先介绍主对话框中函数的实现以及说明:
(1)Onopen();
打开函数
voidCKejianDlg:
:
Onopen()
{
charszFileFilter[]=
"
AllFile(*.*)|*.*|"
AVIFile(*.avi)|*.avi|"
Mp3File(*.mp3)|*.mp3|"
MPEGFile(*.mpeg)|*.mpeg|"
MediaFile(*.asf)|*.asf|"
VideoFile(*.dat)|*.dat|"
MPGAFile(*.mpga)|*.mpga|"
WaveFile(*.wav)|*.wav|"
MovieFile(*.mov)|*.mov|"
MidFile(*.mid;
*,rmi)|*.mid;
*.rmi|"
WmaFile(*.wma)|*.wma|"
RmvbFile(*.rmvb)|*.rmvb|"
AllFile(*.*)|*.*||"
;
//可选的文件类型
CFileDialogdlg(true,NULL,NULL,OFN_HIDEREADONLY|OFN_ALLOWMULTISELECT|OFN_NOCHANGEDIR,szFileFilter);
//OFN_ALLOWMULTISELECT是允许选择多个文件OFN_NOCHANGEDIR是不改变当前目录
POSITIONpos=dlg.GetStartPosition();
if(dlg.DoModal()==IDOK)
{while(pos!
=NULL)
{
m_pathname=dlg.GetNextPathName(pos);
//得到完整的文件名,包括目录名和扩展名
m_list.AddString(m_pathname);
//增加到播放列表
}
}
}
问题是理解的奇怪的功能,因为大量的类,并且每个成员函数是不同的,更难以使用。
除了常见的文件对话框和更熟悉的,其他的功能通常是不可见的。
通过增加播放目录的路径名主要取决于getnextpathname()函数,该m_list.addstring()函数是添加到播放列表中的项目名称
(2)Onlist();
播放列表按钮函数和OnDblclkList1();
播放列表函数:
voidCKejianDlg:
Onlist()
flag=!
flag;
if(!
flag)
SetWindowPos(NULL,0,0,400,430,SWP_NOMOVE);
//播放列表初始位置状态
else
SetWindowPos(NULL,0,0,590,430,SWP_NOMOVE);
//点击按钮后播放列表位置状态
}
播放按钮设计功能是运行软件播放器播放的是隐藏的,当你点击按钮,弹出的列表。
为了实现这个功能,我会一起播放列表和播放表按钮。
为此,该程序定义了一个全局变量的图标,把它作为一个标志,在初始化定义窗口无相对位移,当你点击按钮,位移的窗口,它会达到隐藏和功能的播放列表。
但对播放列表,它需要实现双播放功能,所以加上控制列表消息映射,并选择双击消息响应函数,如图2,13所示。
该项目也加入了执行响应函数()函数,当你点击功能开始创
建一个计数器,从而实现播放模式功能。
图13播放列表消息影像函数设置
CKejianDlg
具体程序如下所示:
OnDblclkList1();
//双击播放函数
CStringstr
intindex=m_list.GetCurSel();
//获取选择的行数
m_list.GetText(index,str);
m_CKejianDlg.SetUrl(str);
//播放
m_pathname=str;
SetTimer(1,1000,NULL);
//在点击播放时就创建计时器每隔1秒就自动执行下响应函数ontimer()
(3)Onplay();
播放函数及其他多媒体播放控制按钮
voidCKejianDlg:
Onplay()
{m_Control.play();
//暂停后继续播放}
如同播放函数所示,其他控制播放状态的函数都可以直接调用添加的控件的类的对象调用实现,按钮响应函数和调用的函数关系如表2-5所示。
表2-5响应函数和调用函数关系
响应函数
调用函数
Onfastre6verse()
m_Control.fastReverse()
Onfulscreen()
m_Kejian.SetFullScreen
(1)
On
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 论文 终结