Воспроизведение AVI с помощью управления анимацией - PullRequest
0 голосов
/ 16 сентября 2010

Я не программист на С ++ ежедневно, поэтому мне нужна помощь.Я «написал» это .Это новый проект «Приложение для Windows» в DevC ++.Я добавляю это

#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 ]

2 голосов
/ 16 сентября 2010

Как однажды Рэймонд Чен написал в блоге , этот элемент управления анимацией имеет много ограничений.Он был специально разработан только для простых анимаций.

* 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 голосов
/ 16 сентября 2010

AVI - это просто контейнерный формат.Вы не можете сказать, что внутри.Поэтому я думаю, что фактические данные внутри не поддерживаются элементом управления анимацией.Вы можете попробовать воспроизвести «clock.avi», который должен находиться в папке Windows (вероятно, C: \ Windows).

Также имейте в виду, что управление анимацией не работает в Windows7. ( РЕДАКТИРОВАТЬ : спасибо за подсказку).Если вам нужны сложные функции воспроизведения, вы можете посмотреть на DirectShow.Элементы управления анимацией предназначены только для очень простых анимаций.

"Элемент управления анимацией может отображать клип AVI, исходящий либо из несжатого файла AVI, либо из файла AVI, сжатого с использованием кодировки длины цикла (BI_RLE8)."

Подробности о спецификации и поддерживаемых данных можно найти здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...