PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » Вопросы по PureBasic » MoviePlay WebCam и AVI


MoviePlay WebCam и AVI

Сообщений 1 страница 3 из 3

1

Такая тема : в новых версиях РВ к сожалению пропали полезные функции связанные с обработкой и управлением видеопотоков.
"Cтарые" примеры кода касательно MoviePlay WebCam и AVI больше не поддерживаются.
Вероятно решение лежит за пределами РВ. Описаний нет.

Может кто-нибудь помочь с MoviePlay WebCam и AVI ?

Задача : проигрывать и получать ScreenShot c Movie.

(Для работы с WebCam имеется возможность использовать работающую библиотеку AVIcap32.dll)

0

2

О каких таких новых версиях речь?
Под win10x64 только что запустил простейший пример и даже mkv прекрасно воспроизводится в PB 6.02x64

Код:
;
; ------------------------------------------------------------
;
;   PureBasic - Movie example file
;
;    (c) Fantaisie Software
;
; ------------------------------------------------------------
;

If InitMovie() = 0
	MessageRequester("Error", "Can't initialize movie playback !", 0)
	End
EndIf

MovieName$ = OpenFileRequester("Choose the movie to play", "", "Movie files|*.avi;*.mpg|All Files|*.*", 0)
If MovieName$
	If LoadMovie(0, MovieName$)
    
    OpenWindow(0, 100, 150, MovieWidth(0), MovieHeight(0), "PureBasic - Movie")
    PlayMovie(0, WindowID(0))
    
    Repeat
    Until WaitWindowEvent() = #PB_Event_CloseWindow
	Else
    MessageRequester("Error", "Can't load the movie...", 0)
	EndIf
EndIf

и по этой ссылке обсуждается кажется успешное решение
https://www.purebasic.fr/english/viewto … lit=webcam

p.s. я это к тому, что вопрос без конкретики и кода + ссылки на требуемый доп софт, неудачной попытки, бесполезен.

Отредактировано useful (28.06.2023 18:16:09)

0

3

Сорри, но моя проблема - получить "ScreenShot" из MOVIE (не от вебкамеры)
К сожалению, хотя Movie можно по-разному проигрывать без проблем, получить "ScreenShot" не удаётся (= чёрный квадрат).
Например так тоже не выходит :

Код:
Enumeration    
  #Window_0
EndEnumeration

;------ CreateImage
 CreateImage(0,320,240,24)
;------ Init  
 
If InitSprite() = 0 
  MessageRequester("Error","Problem with InitSprite()",0) ;
  End 
EndIf 

If InitMovie() = 0
  MessageRequester("Error", "Can't initialize movie playback !", 0) 
  End
EndIf

MovieName$ = OpenFileRequester("Choose the movie to play", "", "Movie/Audio files|*.avi;*.mpg;*.asf;*.mp3;*.wav|All Files|*.*", 0)

If MovieName$ 
  If LoadMovie(0, MovieName$) 
     OpenWindow(#Window_0, 20, 20, 320, 240, MovieName$)          
  Else      
    MessageRequester("Error", "Can't load the movie...", 0)  
  EndIf  
EndIf 

;------ OpenWindowedScreen

  If OpenWindowedScreen(WindowID(#Window_0), 0, 0, 320, 240, #True, 0, 0)
    
    PlayMovie(0,WindowID(#Window_0))    
    Delay(1000)   
    PauseMovie(0)
       
;     FlipBuffers() ; (?)

    hDC = StartDrawing(ImageOutput(0))
    WndDC  = GetDC_(WindowID(#Window_0))
    
     BitBlt_(hDC,0,0,320,240,WndDC,0,0,#SRCCOPY) 

    StopDrawing()   
    ReleaseDC_(hWnd,WndDC)
    
;------ Save Image   
    
      SaveImage(0,"ss.bmp")
      
        Repeat
          Event = WaitWindowEvent()         
          If Event = #PB_Event_CloseWindow
            End
          EndIf
        Until Event = 0
      
    Else
      MessageRequester("Error", "Can't open windowed screen!", 0)
    EndIf
  
  End

хотя часть экрана так скопировать можно (но не "WindowedScreen") . Такая вот проблема....

0


Вы здесь » PureBasic - форум » Вопросы по PureBasic » MoviePlay WebCam и AVI