windows media player 11 ActiveX 控件配合 ffdshow播放avi文件窗口resize问题
2010-10-26 11:26
671 查看
最近做的项目需要在程序中内嵌wmp activex插件。
不过最郁闷的是wmp配合ffdshow播放h.264文件的时候,窗口的大小完全没法控制。
非常的发指!
之后发现了两个可以解决的办法
1.拿到oleobjectinplace的指针,然后resize它。
这个方法不错,而且应该是标准方法才对。所有的OLE组建都支持如此改变size。但是wmp每次播放的时候还是会自己resize到指定的size。
要获取他的resize事件才能够搞定。只要resize就给他重置size。
2.由于使用的是ffdshow。所以要观察一下。ffdshow有个选项叫做resize。所以可以通过调整解码器本身的resize选项。
ffdshow使用的是注册表。所以每次播放前改变注册表就可以了。这里给出一个函数。
不过最郁闷的是wmp配合ffdshow播放h.264文件的时候,窗口的大小完全没法控制。
非常的发指!
之后发现了两个可以解决的办法
1.拿到oleobjectinplace的指针,然后resize它。
这个方法不错,而且应该是标准方法才对。所有的OLE组建都支持如此改变size。但是wmp每次播放的时候还是会自己resize到指定的size。
要获取他的resize事件才能够搞定。只要resize就给他重置size。
2.由于使用的是ffdshow。所以要观察一下。ffdshow有个选项叫做resize。所以可以通过调整解码器本身的resize选项。
ffdshow使用的是注册表。所以每次播放前改变注册表就可以了。这里给出一个函数。
#include <windows.h> #include <shlwapi.h> static HKEY hKey; static const char * resizeDx = "resizeDx"; static const char * resizeDy = "resizeDy"; static const char * dataSet = "Software//GNU//ffdshow//default//"; void set_ffdshow_window_size(DWORD width,DWORD height) { RegOpenKeyEx(HKEY_CURRENT_USER,dataSet,0,KEY_SET_VALUE,&hKey); RegSetValueEx(hKey, resizeDx, 0, REG_DWORD, (CONST BYTE*)&width, sizeof(DWORD)); RegSetValueEx(hKey, resizeDy, 0, REG_DWORD, (CONST BYTE*)&height, sizeof(DWORD)); RegCloseKey(hKey); }
相关文章推荐
- Windows Media Player播放AVI视频文件时,只有声音,没有图像,问题解决
- 调用WindowsMediaPlayer控件播放多个文件【VB .NET】
- Windows Media Player 11不能播放网络流媒体wmv问题的解决
- Windows Media Player播放文件时遇到问题的解决办法
- 装完Windows Media Player 11后PPlive不能播放,以及Windows Media Player 11不能卸载的问题
- VS2003下windows media player 控件的使用问题
- 用Windows Media Player控件播放音乐图文教程(MP3,WAV,WMV)
- Windows media player控件第二次播放时无法全屏
- 【Delphi】从内存(MemoryStream)使用WMP(WindowsMediaPlayer)控件播放视频音频(Play Video with WMP from MemoryStream)
- MFC使用Windows media player播放声音文件
- Windows Media Player 无法播放此文件,因为不支持指定的协议,解决方法!
- 在DELPHI中让WindowsMediaPlayer控件随窗口改变大小
- WindowsMediaPlayer 11 控件详解
- axWindowsMediaPlayer控件循环播放方法
- 网页内嵌Windows Media Player播放器的多文件播放方法
- Windows Media Player ActiveX 控件参数
- C#调用WindowsMediaPlayer控件实现音乐播放(一)
- Visual Studio 2010 使用Windows Media Player控件实现播放音乐视频
- 解决windows media player无法播放视频,下载解码器失败的问题!
- Windows Media Player ActiveX 控件参数