最近在做一个有关VS2003控件和windows media player 控件的东西,刚开始做的时候,在网上找了很久都没找到相关的中文文档。没办法,只好自己硬着头皮慢慢查看MSDN上的有关内容。由于VS2003控件与VC6有一定的区别,这也是我在查找资料和使用控件时遇到的具到困难。#t#
成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站设计、成都做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的化德网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
Windows media player作为MS的官方组件,MSDN上有着比较详细的英文说明,但是该说明却并不是那么让人一目了然。该文就如何操作该组件的几个主要接口以及一些基本功能的实现给与详尽而明白的说明,为使该文尽量简单易懂,本文给出了用windows media player控件编写一个简单播放器的基本步骤。
首先,创建一个对话框,然后在资源管理器中右击对话框,选择“插入Active控件”—〉选择windows media player—〉将控件拉到适合大小—〉右击player控件—〉选择添加变量(m_avPlayer)。此时添加的变量在VS2003中不在时IWMPPlay4 了,而是COcx。
右击类视图/解决方案—〉添加类—〉选择“Active中的MFC类”—〉选择windows media player<1.0>à选择相应的接口(IWMPMedia IWMPSettings IWMPControls IWMPPlaylist等等)生成类。为图方便,我将所有接口都生成了相应的类。
为了说明方便,我在对话框中放了几个按钮,分别是:打开,播放,暂停,停止,添加。并在对话框右边添加了一个clistctrl又来显示播放列表。
然后在对话框头文件中添加了以下变量:
- CWMPControls m_control;
- CWMPSettings m_set;
- CWMPPlaylist m_playlist;
- CWMPMedia m_media;
- COcx1 m_avPlayer;
- CListCtrl m_listCtrl;
一切准备工作就绪,下面就涉及到具体的编程问题了。media player 的主要功能有:播放控制,屏幕显示,播放列表,播放列表集,播放信息显示。
◆其中播放控制又有:打开,开始,暂停,停止,快速播放,倒退等等。
打开:当选择一个文件打开是,为打开按钮添加消息响应函数,在VS2003控件函数中添加如下代码:
- char szFileFilter[]=
- "Mp3 File(*.mp3)|*.mp3|"
- "MPEG File(*.mpeg)|*.mpeg|"
- "Media File(*.asf)|*.asf|"
- "Video File(*.dat)|*.dat|"
- "MPGA File(*.mpga)|*.mpga|"
- "Wave File(*.wav)|*.wav|"
- "AVI File(*.avi)|*.avi|"
- "Movie File(*.mov)|*.mov|"
- "Mid File(*.mid;*,rmi)|*.mid;*.rmi|"
- "Wma File(*.wma)|*.wma|"
- "All File(*.*)|*.*||";
- CFileDialog fileDialog( TRUE,NULL,NULL,NULL,szFileFilter,this);
- if (fileDialog.DoModal() == IDOK)
- {
- CStringfileName=fileDialog.GetPathName();
- m_avPlayer.put_URL(fileName);
- }
◆下面来实现播放列表。为实现播放列表控制,首先在OnInitDialog()中添加代码:
//创建一个播放列表
- char szFileFilter[]=
- "Mp3 File(*.mp3)|*.mp3|"
- "MPEG File(*.mpeg)|*.mpeg|"
- "Media File(*.asf)|*.asf|"
- "Video File(*.dat)|*.dat|"
- "MPGA File(*.mpga)|*.mpga|"
- "Wave File(*.wav)|*.wav|"
- "AVI File(*.avi)|*.avi|"
- "Movie File(*.mov)|*.mov|"
- "Mid File(*.mid;*,rmi)|*.mid;*.rmi|"
- "Wma File(*.wma)|*.wma|"
- "All File(*.*)|*.*||";
- CFileDialog fileDialog( TRUE,NULL,NULL,NULL,szFileFilter,this);
- if (fileDialog.DoModal() == IDOK)
- {
- CStringfileName=fileDialog.GetPathName();
- //创建一个媒体
- m_media = static_cast
(m_avPlayer.newMedia(fileName)); - //将媒体添加到播放列表
- m_playlist.appendItem(m_media);
- //将列表添加到当前列表,以便实现自动播放
- m_avPlayer.put_currentPlaylist(m_playlist);
- m_set = (CWMPSettings)m_avPlayer.get_settings();
- //参数true设置自动播放,false不设置自动播放
- m_set.put_autoStart(true);
- //将媒体的名字添加到列表控件
- m_listCtrl.InsertItem(0, m_media.get_name());
- }
◆播放信息的显示
可以通过CWMPMedia类获取相关的媒体信息。
◆获取播放文件名:
其他,如鼠标,接盘事件响应,可添加相应的消息响应函数
要注意的是,在添加如鼠标一类的消息时,消息函数有个参数如nButton,它的值为1时是单击鼠标左键,2为单击鼠标右键消息,4为单击鼠标中键。等等。
标题名称:对于VS2003控件的看法与说明的具体概述
本文URL:http://www.gawzjz.com/qtweb/news45/207495.html网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联