使用动画控制播放avi

时间:2010-09-16 09:16:33

标签: c++ windows winapi

我,我不是日常的c ++程序员,所以我需要帮助。我'写'this。它是DevC ++中的新项目“Windows Application”。我添加了这个

#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 个答案:

答案 0 :(得分:2)

正如Raymond Chen曾经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或使用其他方法显示它。

答案 1 :(得分:0)

AVI只是一种容器格式。你不能告诉里面什么。所以我的猜测是动画控件不支持里面的实际数据。您可以尝试播放应该位于Windows文件夹中的“clock.avi”(可能是C:\ Windows)。

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

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

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