Est-ce possible ?
j'ai bien essayé avec TextOut, mais a coups sur le canvas est rafraichie à chaque frame non ? (because ca ne marche pas du tout...)
une idée ?
au pire du pire, je pense pouvoir le faire avec un panel transparent ...
merci !
Est-ce possible ?
j'ai bien essayé avec TextOut, mais a coups sur le canvas est rafraichie à chaque frame non ? (because ca ne marche pas du tout...)
une idée ?
au pire du pire, je pense pouvoir le faire avec un panel transparent ...
merci !
salut
ton image video est bien affiche sur un canvas
il te suffit donc de recuperer ce canvas
apres le dessin de l'image avant l'affichage
et de faire un textout
ta premiere intuition ete la bonne
@+ Phil
heuu ... apres test, ca marche pas ... si je ne sis pas en lecture, mon texte n'affiche, mais disparait en lecture.
si je fait un bouton qui me fait mon TextOut, ca s'affiche l'estpace d'une frame, en gros, a chaque rafraichissement de la vidéo le textout vire (c logique en fait non?)
...
oune autre idée ?
salut
normal c'est bien a chaque rafraichisement de ton ecran qu'il faut
reforce le textout
tu n'aurait pas a ta disposition des callback pour intercepter c'est evenement ?
@+ Phil
pour le moment j'utilise un TMediaPlay, je n'ai pas vu de caalback, mais je peut me tromper vu que je ne sais pas parfaitement ce que c'est![]()
![]()
bon, en attendant, j'ai trouvé un compo gratuit : DSPack (marrant, c le même nom qu'un pack de codec non ?)
il dispose nottament d'un exemple avec un timer, posé sur un panel par dessus le mediaplayer, panel qui prend la couleur de la vidéo ... je ne sait trops comment
ce compo est vachement bien , je crois que je vais l'utiliser
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 procedure TForm1.DSVideoWindowEx1OverlayVisible(Sender: TObject; Visible: Boolean); begin If Visible then Panel2.Color := DSVideoWindowEx1.ColorKey else Panel2.Color := DSVideoWindowEx1.Color; end;![]()
![]()
![]()
salut
arg , j'avait pas tout compris
euh comment te dire le probleme c'est que tu n'as pas d'acces
direct a l'affichage
pour bien faire si j'ai tout compris au composant tmediaplayer
tu doit lui determiné le composant dans lequelle
l'affichage se fera
il ne te reste plus qu' a deriver le support de ton image
et a surcharger sa methode paint
@+ Phil
Salut,
Ce nest pas ci simple de faire afficher un texte sur une vidéo. En effet, lorsque le composant TMediaPlayer affiche une vidéo il le fait par le biais de MCI (ancienne technologie microsoft qui date de Win3.1). Or MCI utilise en fait une fenêtre sans bordure et affiche la vidéo dedans. Il est donc impossible de récupérer son Canvas.
Solutions: un label TStaticLabel sur le composant ou est affiché la vidéo, mais il y aura le fond du label avec.
Sinon essayer de voir avec DirectShow (c'est assez hard, il faudrait créer un filtre ou un truc du genre).
Le DSPack peut être une solution aussi pour faire simple.
@+
salut
ik existe des solution alternative tels que videocap
qui englobe les api de vfw
il existe enormement de resource pour l'affichage de video sans
passer par directx
mais plutot par des api windows
@+ Phil
merci, je vais tester tout ca, mais bon, la technique utilisé dans le dspack fonctionne a merveille![]()
Partager