Autor | Thema: Video als Hintergrund | | 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
|
| | 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
|
| | 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")
|
| | 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
|
| | 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
|
| | 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
|
| | 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
|
| | 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.
|
|
|