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

MATLAB Discussion :

Commander le VLC media player depuis MATLAB


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 43
    Points : 26
    Points
    26
    Par défaut Commander le VLC media player depuis MATLAB
    Bonjour,

    j'aimerais savoir si il est possible de commander par exemple VLC media player grâce à MATLAB. J'arrive à lancer VLC avec MATLAB mais je ne sais pas si je peux par exemple lire un fichier, faire pause et lecture etc... Merci pour vos réponses

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Un exemple sous Windows avec le control ActiveX de VLC (à télécharger ici et à installer si ce n'est déjà fait )

    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
    function vlc
     
    fig = figure('position',[381 188 500 400],...
        'menubar','none',...
        'numbertitle','off');
     
    actx = actxcontrol('VideoLAN.VLCPlugin.1', ...
        'position',[20 60 460 320], ...
    	'parent',fig);
     
    vi = get(actx,'VersionInfo');
    vr = version('-release');
     
    set(fig,'name',sprintf('VLC media player (%s) in MATLAB %s',vi,vr))
     
    actx.volume = 50;
     
    uicontrol('units','pixels','position',[20 20 80 20],...
        'string','Select',...
        'tag','sel',...
        'callback',@pickmovie)
     
    uicontrol('units','pixels','position',[20+80+140/3 20 80 20],...
        'string','Play',...
        'tag','pla',...
        'callback',@playmovie)
     
    uicontrol('units','pixels','position',[20+2*(80+140/3) 20 80 20],...
        'string','Pause',...
        'tag','pau',...
        'callback',@pausemovie)
     
    uicontrol('units','pixels','position',[20+3*(80+140/3) 20 80 20],...
        'string','Stop',...
        'tag','sto',...
        'callback',@stopmovie)
     
        function pickmovie(obj,event)
     
            [fichier,chemin] = uigetfile({'*.avi;*.mpg;*.mpeg;*.ogg;*.flac;*.flv';'*.avi';'*.mpg';'*.mpeg';'*.ogg';'*.flac';'*.flv'}, ...
                'Select a movie file');
     
            invoke(actx,'addTarget',fullfile(chemin,fichier),[],1,int32(1));
     
        end
     
        function playmovie(obj,event)
     
            invoke(actx,'play')
     
        end
     
        function pausemovie(obj,event)
     
            invoke(actx,'pause')
     
        end
     
        function stopmovie(obj,event)
     
            invoke(actx,'stop')
     
        end
     
    end
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 43
    Points : 26
    Points
    26
    Par défaut
    ok je te remercie !!

  4. #4
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 43
    Points : 26
    Points
    26
    Par défaut
    J'ai encore une petite question ^^ : est-il possible de lancer les taches select play pause et stop sans cliquer dessus ? Je m'explique, je veux les lancer a partir d'un autre programme du genre : Si ceci=cela, alors lancer select. J'ai essayer plusieurs choses mais je n'arrive à rien ... Merci +

  5. #5
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Citation Envoyé par Vassili68 Voir le message
    J'ai essayer plusieurs choses mais je n'arrive à rien ...
    On pourrait avoir un aperçu de ce que tu as essayé ?
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  6. #6
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 43
    Points : 26
    Points
    26
    Par défaut
    Ben maintenant j'ai tout effacé vu que ça marchait pas ^^ mais en gros jarrivais pas a appeler les fonction pickmovie, playmovie etc... afin de ne pas être obligé de cliquer sur select etc... donc comment puis-je faire pour "simuler" un clic ?
    Pour lancer vlc par exemple je fais :

    code :

    if indx1==1
    vlc
    end

    Jusque la tout va bien, après pour ouvrir la fenêtre select c'est un autre problème. Est-ce réalisable ?

  7. #7
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Le problème vient du fait que les fonctions (choix, lecture, pause, stop) sont des fonctions imbriquées. Leur visibilité n'est donc assurée qu'à l'intérieur de la fonction vlc.

    Tu peux mettre chaque fonction dans un fichier m et modifier leur appel dans vlc. Et utiliser GUIDATA/GUIHANDLES pour gérer la visibilité des variables entre les fonctions.

    Fichier vlc.m :

    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
    function vlc
     
    fig = figure('position',[381 188 500 400],...
        'menubar','none',...
        'numbertitle','off');
     
    actx = actxcontrol('VideoLAN.VLCPlugin.1', ...
        'position',[20 60 460 320], ...
    	'parent',fig);
     
    vi = get(actx,'VersionInfo');
    vr = version('-release');
     
    set(fig,'name',sprintf('VLC media player (%s) in MATLAB %s',vi,vr))
     
    actx.volume = 50;
     
    uicontrol('units','pixels','position',[20 20 80 20],...
        'string','Select',...
        'tag','sel',...
        'callback','pickmovie')
     
    uicontrol('units','pixels','position',[20+80+140/3 20 80 20],...
        'string','Play',...
        'tag','pla',...
        'callback','playmovie')
     
    uicontrol('units','pixels','position',[20+2*(80+140/3) 20 80 20],...
        'string','Pause',...
        'tag','pau',...
        'callback','pausemovie')
     
    uicontrol('units','pixels','position',[20+3*(80+140/3) 20 80 20],...
        'string','Stop',...
        'tag','sto',...
        'callback','stopmovie')
     
    handles=guihandles(fig);
    handles.actx=actx;
    guidata(fig,handles)
    Fichier pickmovie.m :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function pickmovie
     
    	[fichier,chemin] = uigetfile({'*.avi;*.mpg;*.mpeg;*.ogg;*.flac;*.flv';'*.avi';'*.mpg';'*.mpeg';'*.ogg';'*.flac';'*.flv'}, ...
            'Select a movie file');
     
        handles=guidata(gcbf);
    	invoke(handles.actx,'addTarget',fullfile(chemin,fichier),[],1,int32(1));
    Fichier playmovie.m :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function playmovie
     
    	handles=guidata(gcbf);
    	invoke(handles.actx,'play')
    Fichier pausemovie.m

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function pausemovie
     
        handles=guidata(gcbf);
    	invoke(handles.actx,'pause')
    Fichier stopmovie.m :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function stopmovie
     
    	handles=guidata(gcbf);
    	invoke(handles.actx,'stop')
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  8. #8
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Les trois dernières fonctions étant très similaires, on peut les réunir dans un seul fichier. Soit au final :


    Fichier vlc.m

    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
    function vlc
     
    fig = figure('position',[381 188 500 400],...
        'menubar','none',...
        'numbertitle','off');
     
    actx = actxcontrol('VideoLAN.VLCPlugin.1', ...
        'position',[20 60 460 320], ...
    	'parent',fig);
     
    vi = get(actx,'VersionInfo');
    vr = version('-release');
     
    set(fig,'name',sprintf('VLC media player (%s) in MATLAB %s',vi,vr))
     
    actx.volume = 50;
     
    uicontrol('units','pixels','position',[20 20 80 20],...
        'string','Select',...
        'tag','sel',...
        'callback','pickmovie')
     
    uicontrol('units','pixels','position',[20+80+140/3 20 80 20],...
        'string','Play',...
        'tag','play',...
        'callback','actionmovie')
     
    uicontrol('units','pixels','position',[20+2*(80+140/3) 20 80 20],...
        'string','Pause',...
        'tag','pause',...
        'callback','actionmovie')
     
    uicontrol('units','pixels','position',[20+3*(80+140/3) 20 80 20],...
        'string','Stop',...
        'tag','stop',...
        'callback','actionmovie')
     
    handles=guihandles(fig);
    handles.actx=actx;
    guidata(fig,handles)
    Fichier pickmovie.m
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function pickmovie
     
    	[fichier,chemin] = uigetfile({'*.avi;*.mpg;*.mpeg;*.ogg;*.flac;*.flv';'*.avi';'*.mpg';'*.mpeg';'*.ogg';'*.flac';'*.flv'}, ...
            'Select a movie file');
     
        handles=guidata(gcbf);
    	invoke(handles.actx,'addTarget',fullfile(chemin,fichier),[],1,int32(1));
    Fichier actionmovie.m
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function actionmovie
     
        handles=guidata(gcbf);
        invoke(handles.actx,get(gcbo,'tag'))
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  9. #9
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 43
    Points : 26
    Points
    26
    Par défaut
    Ok merci c'est niquel !

  10. #10
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 43
    Points : 26
    Points
    26
    Par défaut
    Oops j'ai parlé trop vite... J'ai des messages d'erreurs : quand je lance pickmovie j'ai bien la fenêtre qui s affiche mais quand je sélectionne un film et je l'ouvre ça bloque... Voici le rapport d'erreurs :

    ??? Error using ==> guidata at 89
    H must be the handle to a figure or figure descendent.

    Error in ==> pickmovie at 6
    handles=guidata(gcbf);
    Tu as une explication ?

  11. #11
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Citation Envoyé par Vassili68 Voir le message
    Tu as une explication ?
    Non

    Je rigole ... ça arrive quand tu as une interface avec plusieurs objets Figure qui s'ouvrent et se referment. Une solution :

    Fichier vlc.m
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    fig = figure('position',[381 188 500 400],...
        'menubar','none',...
        'numbertitle','off',...
        'tag','vlcfig');
    Fichier pickmovie.m
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function pickmovie
    
    	[fichier,chemin] = uigetfile({'*.avi;*.mpg;*.mpeg;*.ogg;*.flac;*.flv';'*.avi';'*.mpg';'*.mpeg';'*.ogg';'*.flac';'*.flv'}, ...
            'Select a movie file');
    
        handles=guidata(findobj('type','figure','tag','vlcfig'));
    	invoke(handles.actx,'addTarget',fullfile(chemin,fichier),[],1,int32(1));
    Faire la même modification avec les GUIDATA dans les autres fonctions
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  12. #12
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 43
    Points : 26
    Points
    26
    Par défaut
    Ok maintenant c'est niquel juste une petite rectification, le vlcfig doit être entre ' '. Merci beaucoup pour ton aide

  13. #13
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Citation Envoyé par Vassili68 Voir le message
    juste une petite rectification, le vlcfig doit être entre ' '.
    Rectifié
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

Discussions similaires

  1. [ActiveX] Afficher du contenu multimedia grâce au VLC Media Player
    Par Jerome Briot dans le forum Téléchargez
    Réponses: 5
    Dernier message: 16/10/2013, 17h37
  2. Réponses: 2
    Dernier message: 19/11/2008, 11h54
  3. VLC media player et capture d'écran
    Par JoeLassister dans le forum Windows Vista
    Réponses: 8
    Dernier message: 02/08/2008, 11h15
  4. Réponses: 2
    Dernier message: 17/11/2006, 15h54
  5. commandes du windows media player
    Par Tierisa dans le forum Access
    Réponses: 6
    Dernier message: 09/09/2005, 08h45

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