VC编程之VC2008 Windows Media Player控件的使用技巧(三)
小职 2018-07-05 来源 : 阅读 1596 评论 0

摘要:本文主要向大家介绍了VC编程之VC2008 Windows Media Player控件的使用技巧,通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。

本文主要向大家介绍了VC编程之VC2008 Windows Media Player控件的使用技巧,通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。

操作系统:Windows 7
软件环境:Visual C++ 2008 SP1
本次目的:在VC2008下Windows Media Player控件的用法之进阶篇

      在上次的编写Media Player播放器后,这次我们来实现对音视频的控制,比如:播放、暂停、停止、快进、音量、进度条等等。首先我们在对话框上放置如下按钮,如图:

 VC编程之VC2008 Windows Media Player控件的使用技巧(三)

在对话框头文件中,添加播放器的一些头文件和声明对象。

[cpp] view plain copy

1. // TestDlg.h : 头文件  

2. //  

3. #pragma once  

4. #include "afxwin.h"  

5. #include "CWMPPlayer4.h"     //播放头文件  

6. #include "CWMPControls.h"   //控制头文件  

7. #include "CWMPSettings.h"   //设置头文件  

8. #include "CWMPMedia.h"      //媒体头文件  

9. #include "afxcmn.h"  

10. // CTestDlg 对话框  

11. class CTestDlg : public CDialog  

12. {  

13. // ······在这里省略  

14. public:  

15.     CWMPPlayer4 m_Player;    //播放地址关联  

16.     CWMPControls m_control;  //控制按钮关联  

17.     CWMPSettings m_setting;   //设置按钮关联  

18.     CWMPMedia m_media;  //媒体  

19.     CProgressCtrl m_progress;  //进度条      

20. };  

对窗体添加事件,添加一个OnTimer()事件。对Media Player添加播放改变PlayStateChange()事件。具体代码如下:

[cpp] view plain copy

1. // TestDlg.cpp : 实现文件  

2. BOOL CTestDlg::OnInitDialog()  

3. {  

4.     //·········省略  

5.     m_control=static_cast<CWMPControls>(m_Player.get_controls());  

6.     m_setting=m_Player.get_settings();    

7.     return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE  

8. }  

9. void CTestDlg::OnBnClickedButton1()  

10. {     

11.     m_control.play();  //播放  

12. }  

13. void CTestDlg::OnBnClickedButton6()  

14. {     

15.     CString fileName;  

16.     CFileDialog fileDialog( TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,_T("音频、视频文件(*.*)|*.*||"),this);  

17.     if (fileDialog.DoModal() == IDOK)  

18.     {  

19.         fileName=fileDialog.GetPathName();  

20.         m_Player.put_URL(fileName);   //打开播放  

21.     }   

22.     m_media=static_cast<CWMPMedia>(m_Player.newMedia(fileName));  

23.     m_progress.SetRange(0,(int)m_media.get_duration());  //媒体总长度  

24.     m_progress.SetPos(0);     

25. }  

26. void CTestDlg::OnBnClickedButton2()  

27. {     

28.     m_control.pause();  //暂停  

29. }  

30. void CTestDlg::OnBnClickedButton3()  

31. {     

32.     m_control.stop();        //停止  

33. }  

34. void CTestDlg::OnBnClickedButton4()  

35. {     

36.     m_control.fastForward();   //快进  

37. }  

38. void CTestDlg::OnBnClickedButton5()  

39. {     

40.     m_control.fastReverse();   //快退  

41. }  

42. void CTestDlg::OnBnClickedButton7()  

43. {     

44.     m_Player.put_fullScreen(1);   //全屏  

45. }  

46. void CTestDlg::OnBnClickedButton8()  

47. {     

48.     m_setting.put_volume(m_setting.get_volume()-10);   //音量减少  

49. }  

50. void CTestDlg::OnBnClickedButton9()  

51. {     

52.     m_setting.put_volume(m_setting.get_volume()+10);  //音量增加  

53. }  

54. void CTestDlg::PlayStateChangeOcx1(long NewState)  

55. {     

56.     if (NewState==3)                //播放状态时, 开启定时器  

57.         SetTimer(1,1000,NULL);    

58.     else if (NewState==1)             //停止时, 关闭定时器, 进度条回0  

59.     {  

60.         m_progress.SetPos(0);  

61.         KillTimer(1);  

62.     }  

63.     else  

64.         KillTimer(1);  

65. }  

66. void CTestDlg::OnTimer(UINT_PTR nIDEvent)  

67. {  

68.     // TODO: 在此添加消息处理程序代码和/或调用默认值  

69.     if (nIDEvent != 1)    

70.          return;  

71.     m_progress.SetPos(m_progress.GetPos()+1);  

72.     CDialog::OnTimer(nIDEvent);  

73. }  

效果如下:

VC编程之VC2008 Windows Media Player控件的使用技巧(三)


本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言VC/MFC频道!

本文由 @小职 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程