forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Библиотеки (http://forum.boolean.name/forumdisplay.php?f=28)
-   -   Avi for Blitz3D (http://forum.boolean.name/showthread.php?t=9254)

DartWaider aka Yxo 26.09.2009 06:14

Avi for Blitz3D
 
Привет. Возникла проблема с запуском Авишек на Блице.
Когда в полноэкранном режиме воспроизводишь ави то окно сварачиваеться, что есть крайне неудобно, а если включён дебаг, то эффект как от команды Stop.

Решил проблему, только после того как начали проходить ВинАПИ на учёбе.
Так как блиц по дефолту(во всяком случае я так думаю) включает в себя либу user32, которая есть на любом компе с Виндой, то пришлось просто дописать в Деклах этой либы следующее:
ShowWindow%(hwnd%,SH_FLAG%):"ShowWindow"

в коде пишем:
ShowWindow(hWnd,0)
Movie = OpenMovie(FileName$)
ShowWindow(hWnd,1)

где hWnd грузим сразу после запуска, например так:
Global hWnd = GetActiveWindow()

в итоге у меня всё работает, то есть не приходиться вручную разворачивать свернувшееся окно.

если надо какие-либо фун-ции из user32 просто находим их в нете(например msdn.microsoft.com) читаем список параметров и пишем в Декл по накатаной схеме.

LUK 26.11.2009 23:42

Ответ: Avi for Blitz3D
 
Цитата:

Сообщение от DartWaider aka Yxo (Сообщение 119776)
Когда в полноэкранном режиме воспроизводишь ави то окно сварачиваеться, что есть крайне неудобно, а если включён дебаг, то эффект как от команды Stop.

Что-то не помню такого? Все нормально воспроизводится в полноэкранном режиме и ничего не сворачивается, как я помню... может ошибка в коде? =) Исправил мелкий баг, путем внедрения завихреней с winApi? Хм. Видимо так... Имхо нерационально.

Позже:
Покопался в старых проектах, нашел специально свой кусок кода для проигрывания Avi:

Код:

ClsColor 0,0,0
Color 0,255,0

; Теперь откроем файл с анимацией. Можно использовать файлы AVI или MPEG.
movie=OpenMovie("GameData\VIDEO\Intro.avi")

; Выясняем, как произошла загрузка файла
If movie=0 Then RuntimeError "Ошибка загрузки фильма!"
If Not(MoviePlaying(movie)) Then RuntimeError "Ошибка - фильм не воспроизводится!"

;Определим размер окна фильма
w=MovieWidth(movie) ; ширина
h=MovieHeight(movie) ; высота

; Здесь начинается главный цикл
Repeat

Cls ; Очищаем экран
DrawMovie movie,130,100,770,580 ; Выводим кадр
;Text 400,700,"<ENTER> - пропустить"
; Прорисовка буфера
Flip

Until (MoviePlaying(movie)=False) Or (KeyHit(28))

; Удаляем анимацию из памяти перед окончанием работы
CloseMovie(movie)

Помнится еще, для того, чтобы не было траблов с кодеками на любых машинах, где могут смотреть проект, загонял все avi-шки под кодек 9-го WMP, а чтобы снизить глюки блица и увеличить скорость загрузки/воспроизведения загружал avi без звука, а звук пускал отдельным аудио-каналом... как-то так, если не изменяет память...


Часовой пояс GMT +4, время: 05:14.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Перевод: zCarot