}
}
flag = 0;//设置信号量为假
}
(10)设置置顶播放模式,但用户将播放器设置成置顶播放模式后,播放器就不会被其他窗口所覆盖。
void CMediaPlayerDlg::OnMenuAlwaysontop() {
static int flag=0; 设置信号量
if (!flag)//判断信号量是否为真,即判断当前是否为置顶模式 {
::SetWindowPos(m_hWnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSI ZE);//设置窗口为置顶
flag = 1;//设置信号量为真 } else { } }
(11)播放速率的控制,以下为半速播放视频的代码,正常速率播放和两倍速率播放视频的代码相似,这里就不在重复讲述。
void CMediaPlayerDlg::OnMenuHalfrate() {
if (m_pFilterGraph)//如果CDXGraph对象不为空,则执行代码 m_pFilterGraph->SetPlaybackRate(0.5);//将播放速率设为1/2;
SetWindowText(_T(\倍速播放 \设置窗口标题文本 }
}
17
::SetWindowPos(m_hWnd,HWND_NOTOPMOST,0,0, 0, 0, SWP_NOSIZE flag = 0;//设置信号量为假
| SWP_NOMOVE);//设置窗口为非置顶
{
第四章 程序实现结果
4.1程序运行结果演示
1.双击play.exe可执行文件,自动进入播放器主界面,程序主界面如图6:
图6:播放器运行界面
2.单击“打开”按钮,弹出打开文件对话框,如图7。在文件类型下拉列
表中,可以选择打开某种格式的文件,基本上网络上流行的主流媒体格式都可以打开播放,选择一个媒体文件后单击打开。
18
图7:打开视频文件对话框
3.单击“打开”后返回程序主界面。
4.单击“播放”按钮,开始播放文件,在播放过程中,可通过单击进度条自由选择播放进度。在播放过程中,可以通过“暂停”、“停止”、“全屏”,“抓图”等按钮达到相应的播放控制功能。
5.最后可以单击“退出”按钮,退出程序。
在这次的毕业设计中,我通过Microsoft Visual Studio 2010开发工具,设计制作了一个多媒体播放器。该播放器虽然简单小巧,但基本功能齐全,能够实现全屏、抓图等功能,并且能够播放网络上大多数常见的媒体格式。虽然设计过程充满困难,但获得的成果让人感到欣喜。通过这次的设计,我不仅学习到了如何利用微软的开发平台开发用户界面程序,还学习到许许多多多媒体相关的重要知识,这对我今后继续学习将起到重要作用。
19
参考文献
[1] 张海藩. 软件工程导论(第5版)[M]. 清华大学出版社, 2008 [2] 史济民. 软件工程—原理、方法与应用[M]. 高等教育出版社, 2002 [3] 郑人杰. 实用软件工程. 清华大学出版社[M], 2002
[5] 王建民, 张宏壮. 基于Qt的嵌入式媒体播放器系统的设计[D]. 微计算
机信息, 2008, 24(7)
[6] 王亚荣, 顾卫江. C++Builder中基于DirectShow的媒体播放器的设计与
实现[D]. 计算机与数字工程, 2007, 35(4)
[7] 钱冬云. 基于Delphi的新型多媒体播放器的制作[J]. 浙江工贸职业技
术学院学报, 2007, 7(2)
[8] 王咸伟. 在Delphi中利用MediaPlayer组件进行多媒体编程[D]. 计算机
时代, 1997, 2
[9] David Simon. Visual C++ 6 编程宝典[M]. 北京电子工业出版社, 2005 [10]宇鹏. Visual C++实践与提高---ActiveX篇[M]. 北京中国铁道出版社,
2001
[11]管西京,深入体验Visual C++项目开发[M],清华大学出版社,2011
20
致 谢
在整个论文的写作过程中,我首先要感谢我的论文指导老师方老师。他为我的论文写作的安排计划上提供了合理的建议,同时在我开题报告的拟写、论文的设计上都做出了悉心的指导,以及他提供给我的大量资料都对我的设计起到了莫大的帮助。其次,我要感谢本次论文所参考书籍的作者以及网上有关资料的提供者,因为他们无形的帮助,才会有这篇论文的完成。
衷心的谢谢你们!
21