IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Utilisation LibVlc en vb.net


Sujet :

VB.NET

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Utilisation LibVlc en vb.net
    Bonjour,

    En premier bonne année 2016 à tous.

    Ensuite, initialement j'ai commencé à faire un peu de programmation avec VBA sur excel. Depuis 1 an, à temps perdu, j'ai commencé à me mettre au VB (histoire de ne pas être trop dépaysé) avec Visual Studio Community 2013. J'ai d'en l'idée de développer une petite application en VB / WPF afin de classer et taguer mes fichiers vidéos (films, vidéo smartphone...).
    J'ai pas mal avancé. Mais je bute sur la récupération des données techniques liées aux fichiers (codec, débit, taille, durée...) ainsi que les données liés aux différents flux dans le cas de fichier conteneur (avi, mkv...). J'ai essayé avec mediainfo.dotnet mais les résultats obtenus ne sont pas top (données réparties sur des champs différents suivant les formats des fichier et des flux). J'ai également essayer avec FFprobe en ligne de commande. Mais c'est plutôt lourd et long pour récupérer les données en parsant le résultat obtenu en xml.
    Utilisant VLC pour lire les vidéos sur mon pc, j'ai voulu utiliser libvlc.dll. Mais là je coince complètement. Depuis plusieurs jours je cherche des infos sur comment faire pour utiliser cette librairie dans un projet en VB. Le peu que j'ai trouvé (en anglais donc pas simple quand on n'est pas un grand de la langue de Shakespeare) est en C# et je n'arrive pas à l'adapter en VB.

    Ma question est donc : quelqu'un pourrait-il guider le débutant que je suis pour utiliser libvlc.dll dans mon appli ou m'indiquer un tuto adapté au débutant.

    Si vous avez besoin de plus d'info, n'hésitez pas à me le faire savoir.

    @+

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par franck31000 Voir le message
    Bonjour,

    Depuis plusieurs jours je cherche des infos sur comment faire pour utiliser cette librairie dans un projet en VB.
    @+
    En mettant VLC VB.net dans la liste déroulante de Google Recherche avancée en haut à droite de beaucoup de fenêtres sur ce site, on trouve en commençant 3 ou 4 liens qui pourraient être utiles. En descendant un peu, il y en a encore plus

    Nom : vlc.jpg
Affichages : 2893
Taille : 273,4 Ko
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    @clementmarcotte : j'ai déjà fait la démarche. Mais tout ce que je trouve :
    - se rapporte à du c#
    - est assez ancien et ne colle plus avec la nouvelle version de VLC.
    - ce sont quasiment tout le temps des posts se rapportant à une utilisation avancée de la librairie
    Et je n'ai rien trouvé qui part de zéro pour utiliser cette librairie.

    J'ai également regardé sur videolan.org. Mais je n'ai rien trouvé d'exploitable pour mon petit niveau.

    Il y a également un wrapper sur GitHub : github.com/ZeBobo5/Vlc.DotNet. Mais aucune doc n'y est associée.

    À toutes les bonnes âmes : Je cherche une piste qui me mette sur la bonne voie.

    A+

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par franck31000 Voir le message
    @clementmarcotte : j'ai déjà fait la démarche. Mais tout ce que je trouve :
    - se rapporte à du c#
    Ceci n'est pas un argument valide, VB.NET et C# (pour ne citer qu'eux) reposent sur un langage commun appelé IL (Intermediate Language). On peut donc convertir de l'un à l'autre avec des outils tels que http://converter.telerik.com/ par exemple.

    La conversion ne sera pas toujours totalement parfaite, mais ca te mâche 99% du travail.

    Ensuite on ne s'improvise pas développeur, donc même si l'on comprend bien que tu débutes, peut-être que tu t'es fixé un objectif trop élevé pour le moment. Commence avec des choses simples et monte en complexité progressivement Pour démarrer sur de bonnes bases, tu peux déjà te référer à ce cours très complet : Cours VB.NET par Philippe Lasserre.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    @ DotNetMatt : Bonjour et merci de me répondre.

    Pour ce qui est de mon niveau, il est effectivement celui d'un autodidacte qui apprend essentiellement en adaptant ce qu'il trouve sur le net. Le cours de maitre LASSERRE est épinglé dans mon Firfox et je m'y réfère régulièrement. Quand je bute sur quelque chose et que c'est dans ce cours, c'est nickel. Mais pour le problème exposé dans ce post, là il n'y a rien.
    En terme d'avancement dans mon appli, j'en suis disons au 2/3. J'ai déjà réussi a l’interfacé avec une application tierce (Médiamonkey), à créer une interface WPF avec une 40taine d'objets différents (textbox, listbox, button, listview...). J'ai également réussi à récupérer des infos sur le web via Html Agility Pack. Je pense que je n'aurai pas trop de problème pour ensuite recracher toutes les données collectées. A travers le développement de cette application, j'ai un objectif technique : tagger des fichiers vidéo. Mais je cherche également à découvrir à temps perdu et en loisir la programmation en vb.net.

    L'argument du C# est effectivement "fallacieux" quand on parle de code. Il me semble qu'il l'est un peu moins quand il s'agit d'intégrer dans un projet des librairies, faire référence à des application tierces... et c'est la que je pèche. Pendant trois bonnes semaines, j'ai essayer d'adapter en Vb.net le peu que j'ai trouvé en C#. J'ai testé différentes choses (en vb, en c#). Mais je n'ai jamais eu le début d'un truc qui marche, sans savoir si le problème vient de mon code, des outils utilisés ou tout simplement du fait que cela ne peu pas être réalisé.

    J'ai actuellement mis mon développement en stand-by pour des raisons de temps à y consacrer et dans l'attente d'un éventuel retour positif à ma demande. Mais lorsque je vais pouvoir m'y replonger, et sans solution sur l'utilisation de libvlc.dll, je me repencherai sur l'utilisation de FFprobe (FFmpeg).

    D'ici là, avis aux personnes intéressées, je cherche des explications "basiques" sur l'utilisation de LibVlc.dll dans un projet en Vb.Net.

    A+

  6. #6
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    La meilleure place, c'est probablement l'Alma Mater. Il y a un lien vers la documentation de l'ActiveX sur la page.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    Merci pour l'aide.

    J'ai déjà regarder cette page https://wiki.videolan.org/ActiveX/, mais elle fait référence au une version de VLC antérieure à la 0.8.5.1.
    Pour les version supérieures, ils renvoient à cette page https://wiki.videolan.org/Documentation:WebPlugin/. Mais cette page semble dédier à une utilisation web du plugin vlc avec des exemples en javascript. Je n'ai rien trouvé concernant intégration de VLC dans un projet VB.net ou éventuellement C#.

    J'ai également cherché sur cette autre page Use VLC's External API, mais c'est également une impasse car même s'il semble que quelque chose soit prévu pour utiliser LibVlc dans un environnement ".Net / CIL", il n'y a aucun lien vers de la documentation.

    A+

  8. #8
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Rien n'est perdu, on peut utiliser une ActiveX avec VB.net, Web ou pas web.

    As-tu essayé les propriétés et les méthodes de l'ancien ActiveX avec le nouveau. En principe, ils devraient se ressembler, sauf su VLC se sacre de la compatibilité.

    Et puis, cela te donne également une bonne occasion d'utiliser l'Explorateur d'objets. En examinant ta bibliothèque dans l'Explorateur d'objets, tu devrais retrouver toutes les propriétés et méthodes, pour autant que ce soit un composant COM (incluant les ActiveX) ou .net.

    Ajout:

    Et puis voilà deux autres composants pur .net. Tu dois ajouter les dll à ton programme, comme des références. Il y a un des articles qui donne des instructions, sur des choses à faire. Et, avec l'Explorateur d'objets, des essais et erreurs et les outils de débogage, tu devrais arriver à quelque part.,

    http://www.codeproject.com/Articles/109639/nVLC

    http://www.codeproject.com/Articles/...-Around-libvlc

    Et puis n'oublie pas les Règles du forum. Tu es certain à 99 % de ne pas avoir de code clef-en-main gratuit.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Janvier 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant en technologies

    Informations forums :
    Inscription : Janvier 2017
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par franck31000 Voir le message
    J'ai essayé avec mediainfo.dotnet mais les résultats obtenus ne sont pas top (données réparties sur des champs différents suivant les formats des fichier et des flux).
    J'ai du mal à cerner les "résultats obtenus ne sont pas top", après je ne connais pas "mediainfo.dotnet".
    Je vous conseille mediainfo (tout court), il y a une interface assez simple (c'est du moins ce qu'on me dit, par rapport à d'autres API) en VB.net, par exemple pour avoir le format (Matroska, MPEG-4, AVI...) "MI.Get_(StreamKind.General, 0, "Format")". (Plus d'exemples).

    Citation Envoyé par franck31000 Voir le message
    données réparties sur des champs différents suivant les formats des fichier et des flux
    L'objectif de MediaInfo est justement d'avoir un même champs pour une même metadata, quelque soit le format du conteneur ou des flux.

    ***

    L'exemple pour VB.net ainsi que le "binding" pour VB.net est livré avec les versions "without installer" de la DLL à sur la page de download de MediaInfo.
    A noter aussi qu'il y a une version pour VBA Excel mais est déconseillée car contribution extérieure et pas très performante pour votre objectif.

    Jérôme, développeur de MediaInfo.

  10. #10
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  11. #11
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    Bonjour
    J'utilise LibVLC.Net de GitHub (voir lien ci-après)

    Apres telechargement du fichier projet zip
    1/Extraction dans C:\Users\franck31000\Desktop\Vlc.DotNet-master
    1/ Compiler et Générer la solution dans le dossier -src- (sous VS2015 Community)
    en configuration Release de la solution (x86)....

    2/solution Winform :
    récupérer les fichiers dll génères situes dans le dossier(build) suivant : C:\Users\franck31000\Desktop\Vlc.DotNet-master\Vlc.DotNet-master\build\Vlc.DotNet.Forms\Release - x86 - .Net 4.0(suivant version .Net Framework)
    => : Vlc.DotNet.Core.dll,Vlc.DotNet.Core.Interops et Vlc.DotNet.Forms
    dans un dossier FrankLibVLCWin ( à mettre sous le coude pour la suite)

    2/solution Wpf :
    récupérer les fichiers dll génères situes dans le dossier(build) suivant : C:\Users\OUNIS\Desktop\Vlc.DotNet-master\Vlc.DotNet-master\build\Vlc.DotNet.Wpf\Release - x86 - .Net 4.0(idem version .Net)

    => : Vlc.DotNet.Core.dll,Vlc.DotNet.Core.Interops , Vlc.DotNet.Forms et
    Vlc.DotNet.Wpf
    dans un dossier FrankLibVLCWpf ( à mettre sous le coude pour la suite)NB: Vlc.DotNet.Forms et Vlc.DotNet.Wpf sont tous les 2 nécessaires ...

    3/pour les projet Winforms il y a un petit fichier ControlExtensions.cs en CSharp additionel necessaire à referencer ...
    Récupérer ce fichier denommé ControlExtensions.cs situé dans le repertoire de la solution source déjà compilé (sous dossier exemple) :
    C:\Users\OUNIS\Desktop\Vlc.DotNet-master\Vlc.DotNet-master\src\Samples\Vlc.DotNet.Forms.Samples\Extensions
    Créer un projet Additionnel LibExtensions (projet Librairie de controles CSharp) pour les projets Winfoms VB.NET et y ajouter ce fichier ControlExtensions.cs (effacer le fichier auto UserControl.cs)

    Pour terminer voici 2 exemples code .vb :

    1/ projet LibExtensions CSharp additionne des winforms :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
     
    using System;
    using System.Diagnostics;
    using System.Windows.Forms;
    namespace LibExtensions
    {
        public static class ControlExtensions
        {
    #if !NET20
            public static T InvokeIfRequired<T>(this T source, Action<T> action)
                where T : Control
            {
                try
                {
                    if (!source.InvokeRequired)
                        action(source);
                    else
                        source.Invoke(new Action(() => action(source)));
                }
                catch (Exception ex)
                {
                    Debug.Write("Error on 'InvokeIfRequired': {0}", ex.Message);
                }
                return source;
            }
    #else
            delegate void InvokeIfRequiredDelegate<TControl>(TControl ctrl, Action<TControl> action);
     
            public static void InvokeIfRequired<TControl>(TControl ctrl, Action<TControl> action)
                  where TControl : Control
            {
                try
                {
                    if (ctrl.InvokeRequired)
                    {
                        ctrl.Invoke(new InvokeIfRequiredDelegate<TControl>(ControlExtensions.InvokeIfRequired), ctrl, action);
                    }
                    else
                    {
                        action(ctrl);
                    }
                }
                catch(Exception ex)
                {
                    Debug.Write("Error on 'InvokeIfRequired': {0}", ex.Message);
                }
            }
    #endif
        }
    }
    1/ projet winform principal :
    -ajouter les références cités et générer.
    -le control VLC doit apparaitre dans la boite à outils ,il suffit de le dropper et ajouter des boutons ,des labels et un textbox....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
     
    Imports System.IO
    ' ---------ajouter references à ces dll situes dans le dossier FrankLibVLCWin----------
    Imports Vlc.DotNet
    Imports Vlc.DotNet.Core
    Imports Vlc.DotNet.Core.Interops.Signatures
    Imports Vlc.DotNet.Forms
    ' ---------ajouter references au projet ADDITIONNL CSHARP  LibExtensions----------
    Imports LibExtensions
    Public Class Form1
        '-------------IMPORTANT-----------
        'L'APPLI NECESSITE LE CHEMIN DU DOSSIER D'INSTALLATION DE VIDEO LAN
        ' =>VLC DOIT ETRE INSTANLLE SUR LA MACHINE CLIENT
        ' dou le path en dur "C:\Program Files\VideoLAN\VLC"
        ' mais tu peux rajouter un FolderBrowseDialog 
        Public Sub New()
     
            ' Cet appel est requis par le concepteur.
            InitializeComponent()
     
            ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
     
        End Sub
     
        Private Sub myVlcControl_VlcLibDirectoryNeeded(ByVal sender As System.Object, ByVal e As Vlc.DotNet.Forms.VlcLibDirectoryNeededEventArgs) Handles myVlcControl.VlcLibDirectoryNeeded
            e.VlcLibDirectory = New DirectoryInfo("C:\Program Files\VideoLAN\VLC")
            If e.VlcLibDirectory Is Nothing Then
                Dim folderBrowserDialog As FolderBrowserDialog = New FolderBrowserDialog()
                folderBrowserDialog.Description = "Select Vlc libraries folder."
                folderBrowserDialog.RootFolder = Environment.SpecialFolder.Desktop
                folderBrowserDialog.ShowNewFolderButton = True
                If (folderBrowserDialog.ShowDialog() = DialogResult.OK) Then
     
                    e.VlcLibDirectory = New DirectoryInfo(folderBrowserDialog.SelectedPath)
                End If
            End If
     
        End Sub
     
        Private Sub ButtonPlay_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonPlay.Click
            myVlcControl.Play(
                New Uri("http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_480p_surround-fix.avi"))
            'la cc'est les infos sur les chaloupes d'immigrants de Lampedusa !!!
            myVlcControl.Play(
              New Uri(Application.StartupPath + "\Videos\TV5MONDE EUROPEJan.mpg"))
     
        End Sub
     
     
        Private Sub ButtonStop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonStop.Click
            myVlcControl.Stop()
        End Sub
     
        Private Sub ButtonPause_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonPause.Click
            myVlcControl.Pause()
        End Sub
     
        Private Sub myVlcControl_MediaChanged(ByVal sender As System.Object, ByVal e As Vlc.DotNet.Core.VlcMediaPlayerMediaChangedEventArgs) Handles myVlcControl.MediaChanged
            'ControlExtensions.InvokeIfRequired(myLblMediaLength, l => l.Text = new DateTime(new TimeSpan((long)e.NewLength).Ticks).ToString("T"))
        End Sub
     
        Private Sub myVlcControl_PositionChanged(ByVal sender As System.Object, ByVal e As Vlc.DotNet.Core.VlcMediaPlayerPositionChangedEventArgs) Handles myVlcControl.PositionChanged
            Dim position As Single = myVlcControl.GetCurrentMedia().Duration.Ticks * e.NewPosition
            ControlExtensions.InvokeIfRequired(myLblVlcPosition, Sub(c)
                                                                     c.Text = New DateTime(CType(position, Long)).ToString("T")
                                                                 End Sub)
     
        End Sub
     
        Private Sub myVlcControl_Paused(ByVal sender As System.Object, ByVal e As Vlc.DotNet.Core.VlcMediaPlayerPausedEventArgs) Handles myVlcControl.Paused
            ControlExtensions.InvokeIfRequired(myLblState, Sub(c)
                                                               c.Text = "Paused"
                                                           End Sub)
        End Sub
     
        Private Sub myVlcControl_Stopped(ByVal sender As System.Object, ByVal e As Vlc.DotNet.Core.VlcMediaPlayerStoppedEventArgs) Handles myVlcControl.Stopped
            ControlExtensions.InvokeIfRequired(myLblState, Sub(c) c.Text = "Stopped")
     
            ControlExtensions.InvokeIfRequired(
                myCbxAspectRatio, Sub(c)
                                      c.Text = String.Empty
                                      c.Enabled = False
                                  End Sub)
            ControlExtensions.InvokeIfRequired(myLblAudioCodec, Sub(c) c.Text = "Codec: ")
            ControlExtensions.InvokeIfRequired(myLblAudioChannels, Sub(c) c.Text = "Channels: ")
            ControlExtensions.InvokeIfRequired(myLblAudioRate, Sub(c) c.Text = "Rate: ")
            ControlExtensions.InvokeIfRequired(myLblVideoCodec, Sub(c) c.Text = "Codec: ")
            ControlExtensions.InvokeIfRequired(myLblVideoHeight, Sub(c) c.Text = "Height: ")
            ControlExtensions.InvokeIfRequired(myLblVideoWidth, Sub(c) c.Text = "Width: ")
     
     
     
        End Sub
     
        Private Sub myVlcControl_Playing(ByVal sender As System.Object, ByVal e As Vlc.DotNet.Core.VlcMediaPlayerPlayingEventArgs) Handles myVlcControl.Playing
            ControlExtensions.InvokeIfRequired(myLblState, Sub(c) c.Text = "Playing")
     
            ControlExtensions.InvokeIfRequired(myLblAudioCodec, Sub(c) c.Text = "Codec: ")
            ControlExtensions.InvokeIfRequired(myLblAudioChannels, Sub(c) c.Text = "Channels: ")
            ControlExtensions.InvokeIfRequired(myLblAudioRate, Sub(c) c.Text = "Rate: ")
            ControlExtensions.InvokeIfRequired(myLblVideoCodec, Sub(c) c.Text = "Codec: ")
            ControlExtensions.InvokeIfRequired(myLblVideoHeight, Sub(c) c.Text = "Height: ")
            ControlExtensions.InvokeIfRequired(myLblVideoWidth, Sub(c) c.Text = "Width: ")
     
            Dim mediaInformations() As MediaTrackInfosStructure = myVlcControl.GetCurrentMedia().TracksInformations
            For Each mediaInformation As MediaTrackInfosStructure In mediaInformations
                Dim item As MediaTrackInfosStructure = mediaInformation
                If mediaInformation.Type = Core.Interops.Signatures.MediaTrackTypes.Audio Then
                    ControlExtensions.InvokeIfRequired(myLblAudioCodec, Sub(c) c.Text += item.CodecName)
                    ControlExtensions.InvokeIfRequired(myLblAudioChannels, Sub(c) c.Text += item.Audio.Channels.ToString)
                    ControlExtensions.InvokeIfRequired(myLblAudioRate, Sub(c) c.Text += item.Audio.Rate.ToString)
                ElseIf (mediaInformation.Type = Core.Interops.Signatures.MediaTrackTypes.Video) Then
                    ControlExtensions.InvokeIfRequired(myLblVideoCodec, Sub(c) c.Text += item.CodecName)
                    ControlExtensions.InvokeIfRequired(myLblVideoHeight, Sub(c) c.Text += item.Video.Height.ToString)
                    ControlExtensions.InvokeIfRequired(myLblVideoWidth, Sub(c) c.Text += item.Video.Width.ToString)
                End If
     
            Next
     
     
            ControlExtensions.InvokeIfRequired(
                myCbxAspectRatio, Sub(c)
                                      c.Text = myVlcControl.Video.AspectRatio
                                      c.Enabled = True
                                  End Sub)
        End Sub
        Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
     
            If myVlcControl.Video IsNot Nothing Then
                myVlcControl.Video.AspectRatio = myCbxAspectRatio.Text
     
                ResizeVlcControl()
            End If
     
        End Sub
     
        Private Sub myVlcControl_SizeChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles myVlcControl.SizeChanged
            ResizeVlcControl()
        End Sub
        Private Sub ResizeVlcControl()
            If Not String.IsNullOrEmpty(myCbxAspectRatio.Text) Then
                Dim ratio() As String = myCbxAspectRatio.Text.Split(":")
                Dim width, height As Integer
                If (ratio.Length = 2 And
                    Integer.TryParse(ratio(0), width) And
                    Integer.TryParse(ratio(0), height)) Then
                    myVlcControl.Width = myVlcControl.Height * width / height
                End If
            End If
     
        End Sub
     
     
    End Class
    1/ projet wpf:
    -ajouter les références cités et générer.

    code xaml du form:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
     
    <Window xmlns:my="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"  x:Class="MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:local="clr-namespace:Vlc.DotNet.Wpf;assembly=Vlc.DotNet.Wpf"
        Title="MainWindow" Height="350" Width="525">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition />
                <RowDefinition />
                <RowDefinition Height="40" />
            </Grid.RowDefinitions>
     
            <local:VlcControl x:Name="myVlcControl"   ></local:VlcControl>
     
     
                <Grid Grid.Row="1">
                <Grid.Background>
                    <VisualBrush Stretch="Uniform">
                        <VisualBrush.Visual>
                            <Image Source="{Binding ElementName=myVlcControl, Path=VideoSource}" />
                        </VisualBrush.Visual>
                    </VisualBrush >
                </Grid.Background>
                <TextBlock Name="textBlockOpen"  TextAlignment="Center" FontSize="18">Please, open a media file.</TextBlock>
            </Grid>
     
            <StackPanel Grid.Row="2" Height="30" Orientation="Horizontal" VerticalAlignment="Bottom" >
                <Button Margin="5" Width="60" Name="OnPlayButton" Click="OnPlayButton_Click"  >Play</Button>
                <Button Margin="5" Width="60" Name="OnForwardButton" Click="OnForwardButton_Click"  >Forward</Button>
                <Button Margin="5" Width="60" Name="GetLength" Click="GetLength_Click"  >GetLength</Button>
                <Button Margin="5" Width="60" Name="GetCurrentTime" Click="GetCurrentTime_Click"  >GetCurrentTime</Button>
                <Button Margin="5" Width="60" Name="SetCurrentTime" Click="SetCurrentTime_Click"  >SetCurrentTime</Button>
     
                <TextBlock Margin="5,2" Name="textBlock"></TextBlock>
            </StackPanel>
     
        </Grid>
    </Window>
    et son code behind .cs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
     
    Imports System.IO
    ' ---------ajouter references à ces dll situes dans le dossier FrankLibVLCWpf----------
    Imports Vlc.DotNet
    Imports Vlc.DotNet.Core
    Imports Vlc.DotNet.Wpf
     
     
    Class MainWindow
        '-------------IMPORTANT-----------
        'L'APPLI NECESSITE LE CHEMIN DU DOSSIER D'INSTALLATION DE VIDEO LAN
        ' =>VLC DOIT ETRE INSTANLLE SUR LA MACHINE CLIENT
        ' dou le path en dur "C:\Program Files\VideoLAN\VLC"
        ' mais tu peux rajouter un FolderBrowseDialog 
        Public Sub New()
     
            ' Cet appel est requis par le concepteur.
            InitializeComponent()
     
            ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
     
            AddHandler Me.myVlcControl.MediaPlayer.VlcLibDirectoryNeeded, AddressOf OnVlcControlNeedsLibDirectory
            Me.myVlcControl.MediaPlayer.EndInit()
     
     
        End Sub
        Private Sub OnVlcControlNeedsLibDirectory(ByVal sender As Object, ByVal e As Forms.VlcLibDirectoryNeededEventArgs)
            e.VlcLibDirectory = New DirectoryInfo("C:\Program Files\VideoLAN\VLC")
        End Sub
        Private Sub OnPlayButton_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
            Me.myVlcControl.MediaPlayer.Play(New Uri("http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_480p_surround-fix.avi"))
        End Sub
     
        Private Sub OnForwardButton_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
            Me.myVlcControl.MediaPlayer.Rate = 2
        End Sub
        Private Sub GetLength_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
            GetLength.Content = Me.myVlcControl.MediaPlayer.Length.ToString + " ms"
        End Sub
        Private Sub GetCurrentTime_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
     
            GetCurrentTime.Content = Me.myVlcControl.MediaPlayer.Time.ToString + " ms"
        End Sub
        Private Sub SetCurrentTime_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
     
            Me.myVlcControl.MediaPlayer.Time = 5000
            SetCurrentTime.Content = Me.myVlcControl.MediaPlayer.Time.ToString + " ms"
     
        End Sub
     
     
     
    End Class
    lien github de libvlc.net :

    https://www.google.fr/url?sa=t&rct=j...45063293,d.d2s
    bon code...

Discussions similaires

  1. [.NET 2.0] Erreur lors de l'utilisation d'une application .NET
    Par Jérôme Lambert dans le forum Framework .NET
    Réponses: 6
    Dernier message: 21/11/2006, 15h45
  2. Utiliser IFilter en VB.Net
    Par fabrisss dans le forum Windows Forms
    Réponses: 1
    Dernier message: 31/07/2006, 09h05
  3. Réponses: 1
    Dernier message: 18/07/2006, 16h44
  4. [JNI] utiliser du code DOT NET via JNI, possible ?
    Par Elbarto dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 14/06/2006, 17h41
  5. utilisation des delegate [VB.net]
    Par grand_prophete dans le forum Windows Forms
    Réponses: 3
    Dernier message: 19/04/2006, 15h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo