VS2003下windows media player 控件的使用问题

原创 2006年06月13日 16:46:00

最近在做一个有关windows media player 控件的东西,刚开始做的时候,在网上找了很久都没找到相关的中文文档。没办法,只好自己硬着头皮慢慢查看MSDN上的有关内容。由于vs2003与vc6有一定的区别,这也是我在查找资料和使用控件时遇到的具到困难,同时也有很多网友遇到了同样的问题,为了使大家以后在遇到同样问题是能有个比较有帮助的中文说明,小弟就将自己前段时间总结的东西贡献出来,希望对各位有所帮助。

 

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 的主要功能有:播放控制,屏幕显示,播放列表,播放列表集,播放信息显示。

 

l         其中播放控制又有:打开,开始,暂停,停止,快速播放,倒退等等。

1.         打开:当选择一个文件打开是,可以直接使用m_avPlayer.put_URL(fileName)

为打开按钮添加消息响应函数,在函数中添加如下代码

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)

    {

        CString  fileName=fileDialog.GetPathName();

        m_avPlayer.put_URL(fileName);

    }

这样当选择一个播放文件后,media player就会自动播放该文件了。

2.         开始:为了实现播放控制,在OnInitDialog()中添加代码:

m_control = static_cast<CWMPControls>(m_avPlayer.get_controls());

然后为开始按钮添加消息响应函数,并在函数中添加代码:

m_control.play();

3.         暂停:m_control.pause();

4.         停止:m_control.stop();

5.         其他如倒退,快速播放,MSDN上有相应的函数,读者可依次自行解决。

到此,一个带有简单播放控制的播放器就完成。

 

l         下面来实现播放列表。为实现播放列表控制,首先在OnInitDialog()中添加代码:

//创建一个播放列表

m_playlist = static_cast<CWMPPlaylist>(m_avPlayer.get_currentPlaylist());

然后将打开按钮的消息响应函数改为:

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)

    {

        CString  fileName=fileDialog.GetPathName();

        //创建一个媒体

        m_media = static_cast<CWMPMedia>(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());

    }

 

l         接着是屏幕显示控制

m_avPlayer.put_fullScreen(true/false);

 

l         使用播放列表自动播放文件,第一步: 需要在播放列表中添加媒体;第二步:将列表设置为当前播放列表;第三步:将播放设置为自动播放。

函数如下:

       //创建媒体

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

    //将媒体追加到播放列表

m_playlist.appendItem(m_media);

//将类别设置为当前列表

    m_avPlayer.put_currentPlaylist(m_playlist);

    //设置自动播放

    m_setting.put_autoStart(true);

 

l         播放信息的显示

可以通过CWMPMedia类获取相关的媒体信息。

获取播放文件名:media.get_name()

 

l         其他,如鼠标,接盘事件响应,可添加相应的消息响应函数

要注意的是,在添加如鼠标一类的消息时,消息函数有个参数如nButton,它的值为1时是单击鼠标左键,2为单击鼠标右键消息,4为单击鼠标中键。等等。

C#Windows Media Player控件基本及扩展属性

现在又找到一些更全的关于wmp API的资料,如下: 属性/方法名说明: 详尽的API文档(比MSDN更透彻): [基本属性]   URL:String; 指定媒体位置,本机或网络地址 ui...
  • u013457167
  • u013457167
  • 2015年01月07日 14:40
  • 1347

Windows Media Player控件

Windows Media Player控件   初级问题: 我的那个定时提醒程序中要用到它,初步使用问题已解决。基本使用步骤如下: 一、往控件箱中添加此控件:wmp.dll 二...
  • zcj331
  • zcj331
  • 2014年04月11日 13:28
  • 779

使用Windows Media Play-ActiveX控件

以ActiveX控件——媒体播放器为例,说明组件应用之功能强大和使用的简单方便。 媒体播放器(Media Player)是DirectX Media中的一个ActiveX控件,支持大多数标准流媒...
  • touzani
  • touzani
  • 2007年05月26日 00:49
  • 7599

Windows Media Player控件的使用和使用心得

原文摘自http://lzy3169421.blog.163.com/blog/static/113545277200931594738193/这是我看到的,关于WMP的帖子里总结得最全面而且写得也最...
  • itmail
  • itmail
  • 2009年06月01日 17:39
  • 6492

C#中Windows Media Player控件使用实例|方法

Windows Media Player控件 Windows Media Player是一种媒体播放器,可以播放当前最流行的音频、视频文件和大多数混合型的多媒体文件。为了便于程序的开发,Visual ...
  • shouhouxiaomuwu
  • shouhouxiaomuwu
  • 2013年11月01日 21:03
  • 4852

Windows Media Player控件的所有属性和方法

Windows Media Player控件的所有属性和方法----1 player.GetPlayState() 返回播放器状态(0:停止,1:连接,2:缓冲,3:播放,4:暂停,5:寻找) ...
  • jiangqin115
  • jiangqin115
  • 2015年10月26日 01:02
  • 1149

windows media player 控件的常用属性及方法

  windowsmediaplayer 控件在我们编程时经常要用到,但是有很多属性及方法却不知道该怎么使用。(JavaScript中用法几乎完全相同)。    假设此控件名为wmp ...
  • 521
  • 521
  • 2007年01月17日 11:35
  • 3370

windows media player 控件的常用属性及方法【转载】

windowsmediaplayer 控件在我们编程时经常要用到,但是有很多属性及方法却不知道该怎么使用。(JavaScript中用法几乎完全相同)。     假设此控件名为wmp ...
  • zhongxia245
  • zhongxia245
  • 2014年04月13日 23:04
  • 1528

vs2008 做播放器 中Windows Media Player 控件使用 (全过程演示~)

vs2008 做播放器 中Windows Media Player 控件为方便大家理解,我先写一下我使用控件的全过程吧。  想在VS2008下学做个播放器。  文件——》新建——》项目,选择MFC应用...
  • nokianasty
  • nokianasty
  • 2010年12月02日 13:37
  • 6225

C#中使用Windows Media Player播放音乐的方法

          首先需要在VS2008中加入WMP的COM控件,然后就可以将控件拖到WinForm中了,最后播放的代码是: this.axWmp.URL = Application....
  • pendle
  • pendle
  • 2010年06月17日 23:26
  • 2644
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VS2003下windows media player 控件的使用问题
举报原因:
原因补充:

(最多只允许输入30个字)