vc内嵌wmplayer播放器(屏蔽右键,全屏,播放信息等)

这应该是用vc在程序中添加视频音频播放器最方便的方法了。但是,你如果只是用vs2010或者其它版本工具插入activex控件,然后生成代码,那就不一定能够得到你想要的全部功能。
wmplayer貌似还有个对应的wm sdk。这个可以用com接口的形式更加底层的控制播放器。但是,如果我们能够得到相关的实现播放器功能的代码,我们也能够得到相同程度的控制。前段时间,在网上找了很久,终于找到一大堆有个wmplayer的类代码。用其中的CWMPPlayer4类绑定播放器就能够得到很强大的控制了,用这个类的成员函数可以得到其他控制和设置类的接口等。
用这个东西最大的缺陷是无法播放内存数据,如果是内存数据,必须生成临时文件。最大的优点是简单方便,功能强大,还可以在不同版本的windows平台兼容,只要上面有默认的wmplayer播放器。这个东西还可以播放网络数据,因为文件其实是通过url索引的。因此,在要求简单的时候,还可以用这个东西快速实现一个网络播放器
下面提供wmplayer相关类的代码,WMP

屏蔽右键和全屏都可以在PreTranslateMessage这个虚函数里面处理,比如if (pMsg->message == WM_LBUTTONDBLCLK)
return TRUE;返回TRUE就不会对这个消息进行处理了。屏蔽右键也可以通过调用m_mediaPlayer.put_enableContextMenu(FALSE);处理。
最奇葩的是屏蔽当前播放的是哪个文件的信息,居然有人奇葩到提出这样的需求。找来找去都没有这样的接口,我都直接看wmsdk的文档了,最后想出了个奇葩的办法,就是用一个static控件遮住。
到现在觉得,最好的操作wmplayer的方式是下载微软的wmsdk,从而直接用接口操作,可以提供最大限度的控制。