Soyez le premier à donner votre avis sur cette source.
Vue 16 131 fois - Téléchargée 1 403 fois
Option Explicit Public DSAudio As IBasicAudio 'IBasicAudio permet d'avoir accès à la création de filtre Public DsVideo As IBasicVideo 'Permet l'accés d'un filtre vidéo Public DSevent As IMediaEvent 'IMediaEvent permet d'accéder aux événements sur un filtre Public DScontrol As IMediaControl 'IMediaControl permet d'avoir accès au flux de donner passant par un filtre Public IPosition As IMediaPosition 'IMediaPosition permet d'accéder à la position d'un fichier lu par un filtre Public VideoWindow As IVideoWindow 'Information concernant l'affichage de la video, fenetre de destination, taille, et autres... Public FullScreen As Boolean 'Option pour le mot plein ecran ou fenetré 'Chargement d'un fichier en memoire Public Function LoadVideo(ByRef path As String, _ ByRef Video As IBasicVideo, ByRef sEvent As IMediaEvent, _ ByRef Control As IMediaControl, ByRef Position As IMediaPosition) If path <> "" Then Set Control = New FilgraphManager ' Initialisation de DirectShow, Filgraphmanager étant un contrôle qui permet d'avoir accède au filtre présent sur un PC Control.RenderFile path ' La méthode RenderFile cré un filtre qui permet de rendre un fichier. Set DSAudio = Control ' On donne l'accès au donné des filtres créés par DirectShowAudio à DScontrol Set Video = Control ' On donne l'accès au donné des filtres créés par DirectShowAudio à DScontrol Set sEvent = Control ' On donne accès à DScontrol aux événements des filtres Set Position = Control ' De même pour la position Set VideoWindow = Control ' Attribut le control de la fenetre video If Not FullScreen Then VideoWindow.WindowStyle = 1 ' Si on est en fenetré on enleve le cadre de la fenetre d'affichage Direct Show Else VideoWindow.FullScreenMode = True ' Met le mode plein ecran à vrai End If End If End Function 'Joue le fichier Public Function PlayVideo(ByRef Control As IMediaControl, ByRef Position As IMediaPosition, Optional ByRef hWnd As Long) Dim lWidth As Long Dim lHeight As Long Control.Stop ' Arret de la lecture Position.CurrentPosition = 0 ' Remise à 0 Control.Run ' Joue le fichier If Not FullScreen Then DsVideo.GetVideoSize lWidth, lHeight 'Récupere les dimensions de la video VideoWindow.Owner = hWnd 'Attribut la fenetre d'affichage à la fenetre de Direct Show VideoWindow.SetWindowPosition 0, 0, lWidth, lHeight 'Définition des positions de la fenetre et de sa taille End If End Function 'Stop entierement la lecture Public Function StopVideo(ByRef Control As IMediaControl, ByRef Position As IMediaPosition) Control.Stop ' Arret de la lecture Position.CurrentPosition = 0 ' Remise à 0 End Function 'Supprime la video de la memoire Public Function DeleteVideo(ByRef Control As IMediaControl, ByRef sEvent As IMediaEvent, ByRef Video As IBasicVideo, ByRef Position As IMediaPosition) Control.Stop ' Arret de la video Set Control = Nothing ' Vidage de la memoire Set sEvent = Nothing ' Vidage de la memoire Set Video = Nothing ' Vidage de la memoire Set Position = Nothing ' Vidage de la memoire End Function 'Pause Public Function PauseVideo(ByRef Control As IMediaControl) Control.Pause ' Pause de la video End Function 'Redemarage apres une pause Public Function ReStartVideo(ByRef Control As IMediaControl) Control.Run ' Relance la video End Function
La classe ne gère pas soit automation ou l'interface attendue ."
Et cela intervient à ce niveau : VideoWindow.WindowStyle = 1
Le problème est-il connu ? Merci
Pour ce qui est d'un fond d'ecran video il me semble que ca a deja etait fait sur le site.
Non vraiment tes idées ne suffisent pas pour me donner envie de programmer cela.
tu vas pas diffuser tout un film sur un ecran d'un jeu
voir ce genre de choses:
http://www.cppfrance.com/codes/RENDU-SUR-TEXTURE-OPENGL-VCPLUSPLUS_11278.aspx
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.