这是一个播放AVI格式视频的类,其主要的成员函数有:
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID
);
//创建一个animate控件并关联一个CAnimateCtrle对象
virtual BOOL CreateEx(
DWORD dwExStyle,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID
);
BOOL Close( );//关闭正在播放的视屏
BOOL IsPlaying() const;//判断视屏是否正在播放
BOOL Open(
LPCTSTR lpszFileName
);//通过文件名打开视屏
BOOL Open(
UINT nID
);//通过资源ID号打开
BOOL Play(
UINT nFrom,
UINT nTo,
UINT nRep
);//播放视屏,
BOOL Seek(
UINT nTo
);//显示指定的帧
BOOL Stop( );//停止
函数都比较简单,在这里并不是说明函数的功能,只是把我使用这个类的过程中所遇到的问题分享出来,望各位大神给予指点。
我使用这个类的步骤是:
1、创建,并和一控件关联(create函数)
2、打开文件(open函数)
3、播放(play)
4、停止(stop)//看是否需要,如过需要在播放过程中终止则用
5、关闭(close)//不使用是就关闭
现在问题来了:
我打开一个文件总是失败,不管是通过文件名来打开还是通过资源ID来打开还是失败,我也使用了文件的绝对路程和相对路径,结果都是无功而返。
查了半天的资料才知道虽然这个类是播放AVI文件,但是对AVI文件也还有要求:片段必须是非压缩的或用RLE8压缩的。
所以这是是打开文件失败的根本原因,彻底无语了。
最有在计算机中找了一个满足条件的AVI文件,成功播放。
最后应该注意播放AVI文件是没有声音的,这也挺郁闷了,貌似不是十全十美。