haav | Дата: Четверг, 21.02.2013, 20:01 | Сообщение # 1 |
Генералиссимус
Группа: Администраторы
Сообщений: 1376
Статус: Offline
| Маленький фикс библиотеки
Маленькое незапланированное обновление. Так получилось, что я смешал в архивах с исходным кодом старые и новые файлы. В итоге хоть компиляция и выполнялась нормально, но были ошибки в использовании функций. На оф. форуме мне об этом написали и поскольку это серьезное упущение, решил выпустить исправление. Ничего не добавлено.
Исправлено:
1) Удалены ненужные файлы 2) Исправлена функция WindowStartDraw (некорректное выполнение на Windows XP). 3) Исправлена функция GadgetY 4) Улучшена функция ColorRequester без потери совместимости (спасибо Jonge за совет)
Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
|
|
| |
haav | Дата: Среда, 03.04.2013, 10:05 | Сообщение # 3 |
Генералиссимус
Группа: Администраторы
Сообщений: 1376
Статус: Offline
| Привет Hristo!
Интерфейс DirectShow имеет метод HideCursor. По идее он должен выполнять эту функцию, но не работает. Точнее он работает только в оконном режиме, но в полноэкранном нет. Microsoft разработала DirectShow очень глючным и исправлять не желает. Есть еще один баг, который я нашел в DirectShow: При использовании в качестве родителя для окна MOVIE любого окна, кроме Desktop, функция MovieFullScreen (интерфейс IVideoWindow_put_FullScreenMode) работает неправильно:
Переключаясь в полноэкранный режим - все нормально Но переключившись обратно - видим черный экран и звук.
Однако я могу предложить такой код видеоплеера, может вам поможет:
Код #Include "window9.bi"
Dim Shared As Integer event,mov8,MOV_FLAG,full, DesktopHeight,DesktopWidth,FlagFull=0 Dim Shared As HWND hwnd Dim As String Setting=GetCurrentSettingsDisplay If Setting<>"" Then DesktopWidth = GetWidthDesktop(Setting) DesktopHeight = GetHeightDesktop(Setting) EndIf hwnd=OpenWindow("Video",10,10,350,350) : CenterWindow(hwnd) ButtonGadget(1,10,280,20,20,"X"):GadgetToolTip(1,"STOP") ButtonGadget(2,40,280,20,20,"|>"):GadgetToolTip(2,"PLAY") ButtonGadget(3,70,280,20,20,"||"):GadgetToolTip(3,"PAUSE") ButtonGadget(6,100,280,20,20,"<<"):GadgetToolTip(6,"Playback speed") ButtonGadget(7,130,280,20,20,">>"):GadgetToolTip(7,"Increase the playback speed") ButtonGadget(8,160,280,20,20,"+"):GadgetToolTip(8,"Open File") ImageGadget(4,6,0,320,240) TrackBarGadget(5,5,250,320,20,0,10,TBS_NOTICKS )
Sub resize Static As Integer Width_,height If Width_<>WindowWidth(hwnd) Or height<>WindowHeight(hwnd)-110 Then Width_=WindowWidth(hwnd) : height=WindowHeight(hwnd)-110
If MOV_FLAG=1 And FlagFull = -1 Then ResizeMovie(mov8,0,0,DesktopWidth,DesktopHeight) ResizeGadget(4,0,0,DesktopWidth,DesktopHeight) ElseIf MOV_FLAG=1 Then ResizeGadget(4,0,0,Width_,height) ResizeMovie(mov8,0,0,width_,height) Else ResizeGadget(4,,,Width_,height) EndIf Var resH=WindowHeight(hwnd)-70 ResizeGadget(1,,resH) ResizeGadget(2,,resH) ResizeGadget(3,,resH) ResizeGadget(5,,resH-30,width_-30) ResizeGadget(6,,resH) ResizeGadget(7,,resH) ResizeGadget(8,,resH) EndIf If MOV_FLAG=1 Then SetTrackBarPos(5,Int(MovieGetCurrentPosition(mov8)/1000000)) EndIf End Sub SetTimer(hwnd,1,10,Cast(TIMERPROC,@resize)) Do event=WindowEvent() Sleep(1) If Event=EventClose Then Exit Do If event=EventGadget Then Select Case EventNumber Case 1 : If mov8 Then StopMovie(mov8) Case 2 : If mov8 Then PlayMovie(mov8):SetRateMovie(mov8,1) Case 3 : If mov8 Then PauseMovie(mov8) Case 5 If GetAsyncKeyState(1)<0 Then If mov8 Then MovieSetPositions(mov8,Cast(Double,GetTrackBarPos(5))*1000000,GetEndPosMovie(mov8) ) EndIf EndIf Case 6 : If mov8 Then SetRateMovie(mov8,GetRateMovie(mov8)-0.5) Case 7 : If mov8 Then SetRateMovie(mov8,GetRateMovie(mov8)+0.5) Case 8 Var OFR = OpenFileRequester("","C:\Users\haav-stabud\Desktop\","Media files (*.avi, *.mp3, *.wmv, *.wav, *.mp4, *.mp2, *.mp1)"+Chr(0)+"*.avi; *.mp3; *.wmv; *.wav; *.mp4; *.mp2; *.mp1"+Chr(0)) If OFR<>"" Then If mov8 Then FreeMovie(mov8) EndIf mov8=LoadMovie(GadgetID(4),OFR,0,0,WindowWidth(hwnd)-30,WindowHeight(hwnd)-110) SetTrackBarMaxPos(5,Int(GetEndPosMovie(mov8)/1000000 )) PlayMovie(mov8):SetRateMovie(mov8,1) MOV_FLAG=1 EndIf End Select EndIf If GetAsyncKeyState(&h20)<0 Then If FlagFull = 0 Then SetWindowStyle(hwnd,WS_VISIBLE Or WS_POPUP) ResizeWindow(hwnd,0,0,DesktopWidth,DesktopHeight+40) ResizeGadget(GadgetID(4),0,0,DesktopWidth,DesktopHeight) FlagFull = -1 Sleep(300) Else SetWindowStyle(hwnd,WS_VISIBLE Or WS_OVERLAPPEDWINDOW ) ResizeWindow(hwnd,0,0,350,350) CenterWindow(hwnd) FlagFull = 0 Sleep(300) EndIf EndIf Loop If mov8 Then FreeMovie(mov8) переключение в полноэкранный режим и обратно: клавиша SPACE
Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
|
|
| |