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 6 et antérieur Discussion :

[VB6] Mettre des sons dans un dll


Sujet :

VB 6 et antérieur

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 44
    Points : 38
    Points
    38
    Par défaut [VB6] Mettre des sons dans un dll
    Bonjour.

    J'aurais aimé savoir comment insérer un son wav dans un dll pour le stocker et quelle est la fonction qui permet de le jouer lorsqu'on appuie sur un bouton par exemple :

    merci

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Points : 619
    Points
    619
    Par défaut
    Voir les api et notamment celle appelée PlaySound

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 44
    Points : 38
    Points
    38
    Par défaut
    je vais regarder ca.

    Merci

  4. #4
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Salut!

    Si c'est un sample pas trop gros, tu peux le stocker dans un tableau de byte...
    Avec Delphi, j'ai réalisé un petit utilitaire qui me permet de créer à partir d'un fichier quelconque, un tableau de constante...
    Je l'ai appellé File2tab, voici les sources:
    http://site.voila.fr/subut/data4/File2Tabx.zip
    Si tu veux juste l'éxé:
    http://site.voila.fr/subut/data4/File2Tabx_exe.zip (216 ko)

    Le résultat est un fichier INC à inclure dans sa source...
    J'avais donné un exemple et des explications dans un topic, mais il a été supprimé.
    Donc, si tu as besoin de détails, demande-moi.

    Au fait, pour utiliser ce tableau avec SndPlaySound, il faut le convertir en pointer.
    En pascal, cela se fait tout simplement avec la fonction addr ou @.

    à+
    De retour parmis vous après 10 ans!!

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 44
    Points : 38
    Points
    38
    Par défaut
    merci

    Je crois que je vais avoir besoin d'un peu d'aide comme je ne connais pas le pascal .

    Pour SndPlaySound, je vais utiliser ce tutorial http://vcallies.developpez.com/sonsvb/ , mais pour ce qui est du pointer en Pascal, je ne vois pas trop ce qu'il faut faire. Et une fois que je l'ai converti en pointeur, je l'insere comment dans mon code vb?

  6. #6
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Imaginons que tu ais traîté le fichier sample1.wav avec File2Inc.exe... Tu obtiens donc le fichier sample1.inc avec le tableau sample1... Tu renomes ce tableau ou le fichier car en fait il ne faut pas qu'ils portent le même nom (je vais corriger ça dans mon code). Bref, disons que tu ais après le traitement le fichier sample1.inc et le tableau sample1tab, tu intègres les données dans ton code. Alors en Pascal, c'est la directive $I, par exemple {$I sample1.inc}. Avec VB, je ne sais pas, mais ça ne doit pas être très différent. Et pour finir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PlaySound( addr(sample1tab), 0, SND_MEMORY | SND_ASYNC );
    Tu as aussi la possibilité de stocker le sample dans le fichier ressource (.res), au choix donc... à+


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub JouerSon(FName As String, SND_TYPE As Long)
    Dim RetVal As Long
    Dim tb() As Byte
    tb = LoadResData(FName, "CUSTOM")
    RetVal = sndPlaySoundMemory(tb(0), SND_TYPE)
    DoEvents ' Optionnel
    End Sub
    ...
    JouerSon "SAMPLE1", SND_ASYNC + SND_MEMORY
    http://www.thevbzone.com/l_res.htm
    http://www.vbarchiv.net/vbapi/PlaySound.php
    http://www.vbexplorer.com/VBExplorer/sound1.asp
    http://www.computing.net/programming/wwwboard/forum/9558.html
    De retour parmis vous après 10 ans!!

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 44
    Points : 38
    Points
    38
    Par défaut
    Je vais regarder tout ca.

    merci pour ton aide et pour les liens.

  8. #8
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Salut!

    Sujet résolu ou pas?
    Je n'aime pas voir des topics laissés ainsi après tous les conseils que nous t'avons donné!
    Pas de réponse = délestage!

    à+
    De retour parmis vous après 10 ans!!

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 44
    Points : 38
    Points
    38
    Par défaut
    Le probleme est bien resolu. J'ai oublié de l'indiquer. Desolé.

    Je le referai pu

  10. #10
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Et la solution est..?
    De retour parmis vous après 10 ans!!

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 44
    Points : 38
    Points
    38
    Par défaut
    Alors, avec l'editeur de ressource, j'ai mis mes wav dans un fichier .res. Ensuite, j'ai utilisé l'api playsound.

    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
     
    Private Const SND_APPLICATION = &H80
    Private Const SND_ALIAS = &H10000
    Private Const SND_ALIAS_ID = &H110000
    Private Const SND_ASYNC = &H1
    Private Const SND_FILENAME = &H20000
    Private Const SND_LOOP = &H8
    Private Const SND_MEMORY = &H4
    Private Const SND_NODEFAULT = &H2
    Private Const SND_NOSTOP = &H10
    Private Const SND_NOWAIT = &H2000
    Private Const SND_PURGE = &H40
    Private Const SND_RESOURCE = &H40004
    Private Const SND_SYNC = &H0
     
    //declaration de l'api PlaySound.
    Private Declare Function PlaySound Lib "WINMM.DLL" Alias "PlaySoundA" (ByRef Sound As Any, _
         ByVal hLib As Long, ByVal lngFlag As Long) As Long 'BOOL
     
    //Fonction qui permet de jouer le son..
    Private Sub JouerSon(Numb)
       Dim DataArray() As Byte
       DataArray = LoadResData(Numb, "WAVE")
       Call PlaySound(DataArray(0), 0, SND_MEMORY Or SND_NODEFAULT Or SND_ASYNC)
       Erase DataArray
    End Sub
     
    ...
     
    //Appelle de la fonction.
    JouerSon 101         //101 est le nom de mon son dans le fichier .res
    J'ai trouvé la solution sur le site http://www.thevbzone.com/l_res.htm que tu avais indiqué un peu plus haut.

    Voila.

    C'est vrai que c'est pas malin de pas donner la solution.

  12. #12
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Parfait!

    à+
    De retour parmis vous après 10 ans!!

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

Discussions similaires

  1. Mettre des couleurs dans les colonnes DataGrid VB6
    Par tomtombcg dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 09/09/2010, 16h51
  2. Réponses: 2
    Dernier message: 27/03/2005, 16h09
  3. Mettre des donnees dans un fichier Excel
    Par Mouawad dans le forum C++Builder
    Réponses: 6
    Dernier message: 07/10/2004, 14h55
  4. [VB6] Gestion des erreurs dans une dll
    Par zimba-tm dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 02/08/2004, 11h20
  5. [VB6] suggestion des entrés dans un combobox
    Par s.rais dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 18/02/2004, 15h32

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