2010-09-16 75 views
0

我,每天不是C++程序员,所以我需要帮助。我'写了'this。这是DevC++中的新项目“Windows应用程序”。我加这个使用动画控制播放avi

#include <Commctrl.h> 
//... 
HWND film; 
//... 
film = Animate_Create(hwnd, 10, WS_CHILD | WS_VISIBLE | ACS_AUTOPLAY, hThisInstance); 

Animate_OpenEx(film, hThisInstance, "a.avi"); 

Animate_Play(film, 0, -1, 1); 

Animate_Stop(film); 

但它不工作。哪里不对?窗口打开,但视频不能播放。

回答

2

至于雷蒙德陈曾经的blogged一下,那动画控制有很多限制。它是专为只有简单的动画而设计的。

* The AVI must be non-interleaved. 
* The AVI must have exactly one video stream. 
* The AVI may not have an audio stream. 
* The AVI may not use palette changes. 
* The AVI must be either uncompressed or BI_RLE8-compressed. 

如果这些应用,你要么必须改变你的AVI或使用不同的方法来显示它。

0

AVI只是一个容器格式。你不知道里面有什么。所以我的猜测是,动画控制不支持里面的实际数据。你可以尝试播放“clock.avi”,它应该放在你的Windows文件夹(可能是C:\ Windows)中。

另外,请注意,动画控件在Windows7上不起作用。 编辑:谢谢你的提示)。如果你想要复杂的播放功能,你可以看看DirectShow。动画控件仅用于非常简单的动画。

“动画控件可以显示源自未压缩的AVI文件或源自使用运行长度(BI_RLE8)编码压缩的AVI文件的AVI剪辑。”

有关规格和支持的数据的详细信息可以找到here

+0

动画控件在Windows 7中正常工作。 – jamesdlin 2015-04-02 23:25:52