Allgemeine Fragen zur PROFAN Programmierung

Views (Heute): 241199 (2635)

| Suchen
| Zurück zur Übersicht

Autor | Thema: Video als Hintergrund
Christoph Schleupner
| Datum:19.04.02 14:45 (triplec@web.de) |
Hi@all. Also ich kann mit diesen Befehlen: cls mcisend$("OPEN sonne.avi TYPE MPEGVIDEO ALIAS AVI") mcisend$("PLAY AVI") waitkey mcisend$("Close AVI") Ein DIVX Avi wiedergeben. Das dumme ist, das es in einen eigenen Fenster wiedergegen wird. gib es eine möglichkeit das man es im Hauptfenster als wie ein Hintergrundbild ( In den Fall Video) wiedergeben kann und moglichst noch etwas darüber machen ??? Please Help
Florian May
| Datum:19.04.02 18:12 |
Ich habe mit den Umgang von Videos unter Profan nicht sehr gute Erfahrungen gemacht. Bei mir funzt der eine Code, ma nächsten tag geht er net, selbst der Beipiel Code von Prfan bricht bei mir mit Fehlern ab. Ich denke ein TUT wäre mal sehr hiflreich, da es doch auf jeden fall bei mit einigen Problemen nie vorran gehen wird. Ich denke das ist möglich, du musst nur den windowstyle des fnester ändern ich schaue gerade mal
Florian May
| Datum:19.04.02 18:19 |
Hier alle Codes die ich zum thema gefunden habe: 'AVI Animate unter Profan 32, ohne Fenster DEF @CreateAnimate(6) @control("SysAnimate32",@$(2),$50800007,@%(3),@%(4),@%(5),@%(6),@%(1),101, %HInstance) WindowStyle 26 WindowTitle " Animate 32" Window 1,1-320,240 Settruecolor 1 cls rgb(75,75,192) declare ende% declare animate& declare b1%,b2%, b3% Declare avi# proc PlayAVI parameters avi$,nx1%, ny1%, nx2%, ny2% Dim avi#,255 let Animate&=CreateAnimate(%Hwnd,"",nx1%,ny1%,nx2%,ny2%) String avi#,0=avi$ sendmessage(Animate&,$464,0,avi#) 'ACM_OPEN = WM_USER + 100 Dispose avi# endproc let b1% = @Createbutton(%Hwnd,"Start",10,10,90,20) let b2% = @CreateButton(%Hwnd,"Stop" ,100,10,90,20) let b3% = @Createbutton(%Hwnd,"Close",200,10,90,20) PlayAVI "film.avi" ,70,70,150,80 Dim avi#,255 String avi#,0 = "film.avi" Let Ende%=0 Whilenot Ende% Case getfocus(b2%) : sendmessage(Animate&,$466,0,0) 'ACM_STOP = WM_USER + 102 Case getfocus(b1%) : sendmessage(Animate&,$464,0,avi#) 'ACM_OPEN = WM_USER + 100 Case or(equ(%Key,4),getfocus(b3%)) : ende% = 1 wend Dispose avi# '--------------------------- 'ICC_ANIMATE_CLASS = $80 'ANIMATE_CLASS = "SysAnimate32" 'WM_USER = $400 'ACS_CENTER = $1 'ACS_TRANSPARENT = $2 'ACS_AUTOPLAY = $4 'ACM_OPEN = WM_USER + 100 'ACM_PLAY = WM_USER + 101 'ACM_STOP = WM_USER + 102 'WS_EX_TRANSPARENT = $20 '------------------------- -------------------------------------------------------------------------------------- x%=100 ' x - Ausgabekoordinate y%=100 ' y - Ausgabekoordinate b%=320 ' b - Breite der Ausgabe h%=240 ' h - Höhe der Ausgabe handle$=@Str$(%HWnd) b$="logo.avi" b$=@ADD$(@ADD$("OPEN ",b$)," TYPE AVIVIDEO ALIAS FILM") b$=@MCISend$(b$) b$="WINDOW FILM Handle ";handle$ @MCISend$(b$) b$="PUT FILM DESTINATION AT ";@Str$(x%),@Str$(y%),@Str$(b%),@Str$(h%) @MCISend$(b$) ---------------------------------------------------------------------------------- Cls Declare A$,B$ WindowTitle "AVI-Video" Let A$=@LOADFILE$("FILM-DATEI","*.AVI") While @NEQ$(A$,"") Let A$=@ADD$(@ADD$("OPEN ",A$)," TYPE AVIVIDEO ALIAS FILM") Let B$=@MCISend$(A$) Case %MCIError: Print "Fehler: ";B$ Let B$=@MCISend$("put FILM destination at 10 10 200 100") 'Hier die Position u. Größe Let A$=Add$("WINDOW FILM handle ",Str$(%HWnd)) Let B$=@MCISend$(A$) Let B$=@MCISend$("PLAY FILM") Waitinput Let B$=@MCISend$("CLOSE FILM") Let A$=@LOADFILE$("FILM-DATEI","*.AVI") Wend End ------------------------------------------------------------------------------------- PROC MMFehler Parameters Fehler$ @MessageBox(Fehler$,"MCI Fehler:",16) @MCISend$("CLOSE CLIP") END ENDPROC windowtitle "mpg-wideo" Window 0,0-%MaxX,%MaxY Declare B$,F$,I% LET f$="teste.mpg" 'Ort/Name des mpeg-videos LET f$=@ADD$(@ADD$("OPEN ",f$)," TYPE MPEGVIDEO ALIAS CLIP style popup parent ") LET f$=@ADD$(f$,@STR$(%hwnd)) LET B$=@MCISend$(f$) Case %MCIError:MMFehler B$ Let B$=@MCISend$("PLAY CLIP NOTIFY") Case %MCIError:MMFehler B$ Let B$=@MCISend$("pause CLIP") Case %MCIError:MMFehler B$ Let i%=@GetActiveWindow() SetWindowPos i%=50,50-800,600;0 'Positon/Größe des Films Let b$=@mcisend$("resume CLIP") Case %MCIError:MMFehler B$ While @Equ$(@MCISend$("status CLIP mode"),"playing") Endwhile B$=@MCISend$("CLOSE CLIP") Case %MCIError:MMFehler B$ waitinput END ------------------------------------------------------------------------- declare x%,y%,b%,h% declare handle$,b$ cls let x%=50 ' x - Ausgabekoordinate let y%=50 ' y - Ausgabekoordinate let b%=320 ' b - Breite der Ausgabe let h%=240 ' h - Höhe der Ausgabe ' FILM - AliasName AVI Datei let handle$=@Str$(%HWnd) let b$="beispiel.avi" let b$=@ADD$(@ADD$("OPEN ",b$),\ " TYPE AVIVIDEO ALIAS FILM") let b$=@MCISend$(b$) let b$="WINDOW FILM Handle ";handle$ @MCISend$(b$) let b$="PUT FILM DESTINATION AT ";\ @Str$(x%),@Str$(y%),@Str$(b%),@Str$(h%) @MCISend$(b$) @MCISEND$("PlAY FILM") waitinput @MCISEND$("STOP FILM") @MCISend$("CLOSE FILM")
Mischa Brandt
| Datum:19.04.02 19:59 |
Hi Christoph! Wie man einen Video ins eigene Programm-Fenster bekommt, ist in diesem Forum schon besprochen worden. Einfach mal die Suche-Funktion nutzen, Stichwort: Avi-Videos im Hauptfenster Ich glaube das mit dem 'darüber' machen könnte schwierig werden. Ich könnte mir allerdings vorstellen, daß Du ein Dialogfenster passend darüber positionieren kannst. Mit einem neuen Hauptfenster geht es in jedem Fall. Das letztere und möglicherweise auch die erste Möglichkeit läßt sich dann durchaus in beliebiger Fenster-Form darstellen, wenn es Dir darum geht ein paar 'Buttons' oder ähnliches darüber zu stellen. Hilfreich dabei wäre die Rgntest.dll von Andreas Miethe, allerdings lassen sich ein paar Regionen auch durchaus 'zu Fuß' programmieren. Ich hoffe aber, daß es noch andere Möglichkeiten gibt. Ich bin aber kein MCI-Experte. Gruß, Mischa
Frank Abbing
| Datum:19.04.02 20:13 (frankabbing@12move.de) |
Hallo, ich denke, du könntest das mit Sprites hinbekommen, die meine ProSpeed.dll bietet. Ausprobieren... Gruß, Frank
Mischa
| Datum:19.04.02 22:48 |
Hi Frank! Das würde aber wohl doch nur mit rechteckigen Sprites funktionieren, oder? Ich meine, der Video-Hintergrund ändert sich doch stetig und die beiden Bildschirmkopien sind ja nun mal statisch. Oder sollte/könnte man den Video-Hintergrund ständig im fps-Takt herumkopieren? Gruß, Mischa
Frank Abbing
| Datum:20.04.02 10:19 |
Hi Mischa, gerade, weil sich der Hintergrund immer ändert. Kann sein, das dann die Ränder leicht flackern, aber vielleicht sieht dieser Effekt ja gerade toll aus. Wie gesagt, ausprobieren. Gruß, Frank
Florian May
| Datum: 20.04.02 12:41 |
Mach es doch so: Plaziere das Video auf nen Dialogfenster, öffne das hauptfenster mit dem windowstyle für unsichtbare fenster im Vordergrund und schon kannste die ganzen sachen auf den Hauptfenster plazieren ohne das es das video stört. Teste das mal.

| Zurück zur Übersicht