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

WinDev Discussion :

ActiveX Sound Recorder Player AX problème conversion paramètre automation [WD16]


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 204
    Par défaut ActiveX Sound Recorder Player AX problème conversion paramètre automation
    Bonsoir,

    Je souhaite utiliser l'ActiveX Sound Recorder Player AX (http://www.audioax.com/sound-recorder-player/) dans une application Windev qui permet de gérer des cartes sons (lecture et enregistrement audio) et je rencontre un problème de passage de paramètre avec l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Erreur à la ligne 7 du traitement Initialisation de FEN_ax.
    Vous avez appelé la méthode Automation 'GetDetailsDevice'.
    Le paramètre 3 n'est pas convertible en paramètre automation.
    Mon code est celui-ci :

    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
     
    AX_Sound est un objet Automation "Sound_Recorder_Player_AX.cSound"
     
    CONSTANTE
    	AUDIOIN = 1
    	AUDIOOUT = 2
    FIN
     
    AudioDeviceDetails est une structure
    	DeviceChannels est un entier
    	DeviceDriver est une chaîne
    	DeviceFormat est un entier sur 4 octets
    	DeviceName est un chaîne
    FIN
     
    AX_Sound>>Init("Trial Mode.")
     
    cDeviceDetails est un AudioDeviceDetails
    lAudioDeviceIndex est un entier sur 4 octets
     
    POUR lAudioDeviceIndex = 0 _A_ AX_Sound>>NumOfAudioDevices(AUDIOIN) - 1
    	AX_Sound>>GetDetailsDevice(lAudioDeviceIndex, AUDIOIN, cDeviceDetails)
     
    	ListeAjoute(COMBO_AudioIN, lAudioDeviceIndex + " - " + cDeviceDetails:DeviceName + " - " + cDeviceDetails:DeviceFormat)
    FIN
    Que j'ai tenté de traduire d'un exemple en VB6 :

    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
     
    Public Function SetAudioDevices(cCboDevices As ComboBox, pInOut As InOut)
     
        'List the sound devices:
        Dim cDeviceDetails As AudioDeviceDetails
        Dim lAudioDeviceIndex As Long
        Dim lInOut As InOut
     
        'Clear values
        cCboDevices.Clear
     
        'Get the info about the input or the output of the audio devices:
        lInOut = pInOut
     
        For lAudioDeviceIndex = 0 To cSound1.NumOfAudioDevices(lInOut) - 1
     
            'Get the info
            cSound1.GetDetailsDevice lAudioDeviceIndex, lInOut, cDeviceDetails
     
            'Add the device to the combo list
            cCboDevices.AddItem lAudioDeviceIndex & " - " & cDeviceDetails.DeviceName & " - " & cDeviceDetails.DeviceFormat
     
        Next lAudioDeviceIndex
     
        'Select the first device:
        cCboDevices.ListIndex = 0
     
    End Function
    Avec Windev, je n'arrive pas à récupérer la librairie de l'activeX, j'ai vu la structure de AudioDeviceDetails dans l'Object Browser de VB6... qui dis ceci :

    Nom : objet.png
Affichages : 540
Taille : 20,6 Ko

    Ce n'est pas une structure ? Comment corriger mon erreur ?

    Merci.

  2. #2
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 248
    Par défaut
    Hello,

    Regarde cette discussion http://www.developpez.net/forums/d13...ion-variables/

    et surtout ce que dit onepoint


    Ami calmant, J.P

  3. #3
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 204
    Par défaut
    Salut jurassic pork,

    J'avais vu ce topic et donc d'apres toi je dois passer par un activex intermediaire ? (msscript)

    Merci

  4. #4
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 248
    Par défaut
    hello WDKyle,

    tu t'embêtes pour rien car la fonction GetDetailsDevice peut être remplacée par les 4 fonctions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    GetDetailsDeviceName(long DeviceIndex, long lInOut);
    GetDetailsDeviceFormat(long DeviceIndex, long lInOut);
    GetDetailsDeviceDriver(long DeviceIndex, long lInOut);
    GetDetailsDeviceChannels(long DeviceIndex, long lInOut);
    qui elles sont beaucoup plus faciles à utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    POUR lAudioDeviceIndex = 0 _A_ AX_Sound>>NumOfAudioDevices(AUDIOIN) - 1
       Trace("index :" + lAudioDeviceIndex)
       Trace("Nom : ",AX_Sound>>GetDetailsDeviceName(lAudioDeviceIndex, AUDIOIN))
       Trace("Format : ",AX_Sound>>GetDetailsDeviceFormat(lAudioDeviceIndex, AUDIOIN))
       Trace("Driver : ",AX_Sound>>GetDetailsDeviceDriver(lAudioDeviceIndex, AUDIOIN))
       Trace("Canaux : ",AX_Sound>>GetDetailsDeviceChannels(lAudioDeviceIndex, AUDIOIN)) 
    FIN
    d'ailleurs dans le fichier _csound.h de l'exemple en vc on a la ligne suivante en commentaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    // method 'GetDetailsDevice' not emitted because of invalid return type or parameter type
    Ami calmant, J.P

  5. #5
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 204
    Par défaut
    Punaise ! Merci jurassic pork

    Ou as tu vu qu'on pouvait faire 4 appels ?! Le fichier d'aide est tres simplicime...

  6. #6
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 204
    Par défaut
    Merci pour ton aide Jurassic Pork, cela fonctionne avec les 4 appels

    Maintenant, j'arrive à faire ce que je souhaite, je coince à présent sur un event que doit renvoyer l'activex, je n'arrive pas à me brancher dessus

    J'ai tenter cela, l'event s'appel Meter et il est censé renvoyer le volume du fichier joué et il est lié au champ activex AX_Graph_Player_1 qui lui est de type : Sound_Recorder_Player_AX.cAudioGraph :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AutomationEvénement(Renvoi_Volume, AX_Graph_Player_1, "Meter")
    Je n'ai pas trouvé comment était "capter" l'event dans le code sources VB6

    Merci.

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

Discussions similaires

  1. Problème labview / activeX / Windows media player
    Par Invité dans le forum LabVIEW
    Réponses: 1
    Dernier message: 20/08/2013, 04h51
  2. Problème avec l'ActiveX Windows Media Player
    Par sgttiti52 dans le forum Composants VCL
    Réponses: 1
    Dernier message: 10/01/2008, 11h03
  3. Probléme conversion de paramétre
    Par bryce426 dans le forum C++
    Réponses: 4
    Dernier message: 08/01/2008, 13h58
  4. Problème conversion date
    Par mat.M dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/03/2004, 15h05
  5. [SWT] Problème de paramètre GridData
    Par yolepro dans le forum SWT/JFace
    Réponses: 4
    Dernier message: 06/12/2002, 10h37

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