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

VBA Access Discussion :

Piloter VLC via VBA [AC-2010]


Sujet :

VBA Access

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 185
    Par défaut Piloter VLC via VBA
    Bonjour,

    Dans une application, lorsqu'une erreur survenait, je faisais jouer un son bien précis par une commande shell avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If existFileFSO(strPath) Then
            ShellExecute hwnd, "play", strPath, "", CurrentProject.Path, 1
    Else
            DoCmd.Beep
    End If
    avec strpath qui représentait le son à jouer.

    Aucun soucis si le lecteur MediaPlayer est le programme par défaut de lecture des sons.

    Toutefois, chez un de nos clients, c'est VLC qui est utilisé. Peu importe la raison, c'est celui là et hors de question d'en changer.

    Ce que je recherche, c'est une documentation concernant les propriétés et méthodes de la bibliothèque axvlc.dll et les contrôles activeX videolan VLC utilisables en VBA.

    J'ai retourné le site de videolan.org mais je n'y trouve pas mon bonheur. J'y ai trouvé une documentation concernant un webplugin et je pensais pouvoir l'utiliser, mais non...

    Quelqu'un aurrait-il la gentillesse de m'orienter, svp ?

    Merci,

    Bonne journée.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 681
    Par défaut
    salut,

    le wiki de VLC apporte peut etre d'autres réponses à ces questions

    http://wiki.videolan.org/
    http://wiki.videolan.org/ActiveX_Controls

    Niveau code

    Première étape, tu définis le fichier qui doit être lu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    VLCPlugin1.addTarget nomfichier, Null, VLCPlayListInsert, 0
    Après tu lances la lecture
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 185
    Par défaut
    Merci de ta réponse rapide, jpcheck. Je vais essayer cela. Je m'échine depuis une heure avec une commande vlc.playlist.add que j'ai trouvée par ailleurs.

    Je vous tiens au courant des résultats.

    Geache

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 185
    Par défaut
    Je n'ai plus une erreur object variable

    J'ai placé ce code sur événement click d'un bouton :

    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
     
    Private Sub Command1_Click()
    On Error GoTo ErrorHandling
    Dim strTitle As String
    '    strTitle = "C:\Tests\scan_completed.wav"
        strTitle = Chr(34) & "C:\Tests\scan_completed.wav" & Chr(34)
     
        VLCtst1.addTarget strTitle, Null, VLCPlayListInsert, 0
        ' VLCtst1.addTarget strTitle, Null, VLCPlayListAppend, 0
     
        VLCtst1.play
    FinSub:
        Exit Sub
    ErrorHandling:
        If Err.Number <> 0 Then
            MsgBox Err.Number & vbCrLf & Err.Description
        End If
        Resume FinSub
    End Sub
    Maintenant, je reçois une erreur

    Compile error:

    Ambigous name detected : ~

    J'explore les liens que tu m'as donné (et au dessus desquels j'étais passé, d'ailleurs ).

    Geache

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 185
    Par défaut
    Bon, j'avais défini un controle activex de type vlc dans un formulaire et coché la référence Videolan vlc activex Plugin.

    Si j'affiche la liste des propriétés et méthodes dans l'éditeur de code, j'ai deux fois VLCPlayListInsert, deux fois VLCPlayListAppend, etc...

    Ce qui explique l'ambiguité sur le nom.

    Ok, je décoche la référence Videolan vlc activex Plugin.

    Je compile pour voir si une erreur est détectée, rien du tout.

    Je lance mon formulaire, je clique sur le bouton...

    Erreur 438 :

    L'objet ne supporte pas cette propriété ou méthode.

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 681
    Par défaut
    Il te faut la référence, sinon ton plugin ne va pas fonctionner

    l'aide du wiki indique la syntaxe
    addTarget

    method

    Adds a uri to the current playlist or replaces the current playlist with the uri.

    controlname.addTarget(uri as String, options, mode as VLCPlaylistMode, Position as Long)
    Regarde les valeurs VLCPlaylistMode directement
    http://wiki.videolan.org/VLCPlaylistMode
    Datum Name Datum Value
    VLCPlayListAppend 4
    VLCPlayListAppendAndGo 12
    VLCPlayListCheckInsert 16
    VLCPlayListInsert 1
    VLCPlayListInsertAndGo 9
    VLCPlayListReplace 2
    VLCPlayListReplaceAndGo 8
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 185
    Par défaut
    Citation Envoyé par jpcheck Voir le message
    Il te faut la référence, sinon ton plugin ne va pas fonctionner
    Oui. C'est ce que je pensais aussi, mais vu que ça ne fonctionnait pas, j'ai voulu essayer.

    Citation Envoyé par jpcheck Voir le message
    l'aide du wiki indique la syntaxe

    Regarde les valeurs VLCPlaylistMode directement
    http://wiki.videolan.org/VLCPlaylistMode
    J'ai vu cela aussi, et j'ai remplacé ma ligne de commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    VLCtst1.addTarget strTitle, Null, VLCP
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    VLCtst1.addTarget strTitle, Null, 1, 0
    Pas d'erreur de compile, un click su l'bouton... pas de message d'erreur...

    Pas de son non plus

    Mes haut-parleurs sont-ils allumés ? Oui.

    Ai-je activé les sons dans Windows ? Oui.

    Que fait-il à l'écran ? On voit qu'il travaille... le problème c'est qu'il n'arrête plus de travailler mais on entend rien. Pour l'arrêter ctrl + alt + delete, gestionnaire de tâches, on lui claque le bec.

    Je modifie la propriété du contrôle autoplay que je place sur non. Juste pour voir...

    J'ai vu : pareil qu'au coup précédent.

    Je me demande si je ne dois pas changer le paramètre NULL par autre chose.

    Voyons le côté positif des choses : on avance. On entend rien, mais on avance...

    Je continue ma recherche.

  8. #8
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 185
    Par défaut
    Un gros doute... mes haut-parleurs sont-ils connectés au PC ?

    Oui, j'viens de friser la crise cardiaque quand, volume à fond, madame AVAST m'a dit que la base virale était mise à jour.

  9. #9
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 681
    Par défaut


    essaie de trouver des exemples de code via google, je n'ai pas mieux dans ma capuche pour l'instant :/
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  10. #10
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 185
    Par défaut
    Visiblement, c'est l'instruction .play qui ne fonctionne pas.

    je viens de changer le code comme ceci, pour voir si ma liste était mise à jour.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        Debug.Print VLCtst1.PlaylistCount
        VLCtst1.addTarget strTitle, Null, 1, 0
        'VLCtst1.addTarget strTitle, , VLCPlayListAppend, 0
        Debug.Print VLCtst1.PlaylistCount
        'VLCtst1.play
    Mon premier debug m'affiche 0, le second 1, donc la liste est mise à jour.

    Déjà un bon point.
    Mais toujours pas de son.

    J'me demande si le client va accepter d'aller voir son ORL quand je vais lui dire que c'est parce qu'il est sourd.

    Mon boss n'y croit pas, lui...

    J'sens que c'est un son qui va coûter cher au client.

  11. #11
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 185
    Par défaut
    Les exemples que je trouve sur le net ne sont pas différents de ce que tu m'as proposé comme code, jpcheck.

    J'me suis dit que c'était peut-être le fichier de test que j'utilisais qui n'était pas reconnu par VLC.

    J'ai donc essayé avec un mpg, avec un avi...

    Même résultat, la liste est mise à jour, le .play donne l'impression de démarrer mon activex, mais après... mon curseur est en mode "Je bosse, me dérangez pas"... et ca dure ad vitam eternam...

    J'arrête pour le moment. J'peux pas passer des journées complètes sur ce problème. J'essaierai une fois rentré chez moi.

    Merci pour l'aide en tous cas, jpcheck.

  12. #12
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 185
    Par défaut
    Je suis une grosse clenche, je suis une grosse clenche, je suis... (j'le copierai 100 fois, j'le jure).

    J'ai trouvé comment régler le problème sans devoir piloter VLC (soit dit en passant, j'ai pas encore trouvé comment on faisait pour ne pas avoir l'application qui gèle).

    Dans mon code d'origine, j'utilisais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If existFileFSO(strPath) Then
            ShellExecute hwnd, "play", strPath, "", CurrentProject.Path, 1
    Else
            DoCmd.Beep
    End If
    Qui fonctionne très bien si MediaPlayer est le lecteur par défaut. Mais VLC ne fonctionne pas avec cette même instruction s'il est définit par défaut.

    Par contre, si on remplace le "play" par "open" dans la commande,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If existFileFSO(strPath) Then
            ShellExecute hwnd, "open", strPath, "", CurrentProject.Path, 1
    Else
            DoCmd.Beep
    End If
    Quel que soit le lecteur, zune, media, vlc... le son est joué.

    Pourquoi faire simple quand on peut faire compliqué, n'est-ce pas ?

    Merci à JPCheck, en tous cas.

    (Et dés que j'ai un moment de temps, je me replongerai sur ces instructions VLC pour essayer de trouver pourquoi cela ne fonctionnait pas).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Piloter un projet SAS guide via VBA
    Par jeepipy dans le forum Outils BI
    Réponses: 2
    Dernier message: 10/04/2014, 13h55
  2. Piloter IE via VBA (liste déroulante)
    Par majudis dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 03/12/2012, 10h02
  3. Réponses: 2
    Dernier message: 02/08/2012, 17h28
  4. Comment piloter SAP via VBA Access ?
    Par megapacman dans le forum VBA Access
    Réponses: 4
    Dernier message: 07/08/2008, 14h12
  5. Manipulation du carnet d'adresse outlook via VBA Excel?
    Par Dragon Tours dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/11/2005, 12h16

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