Un clic pour plusieurs sons [Résolu]

Messages postés
2
Date d'inscription
lundi 12 août 2013
Dernière intervention
12 août 2013
-
Débutant avec VB 2010 express, j'ai commencé un programme devant générer plusieurs sons successifs déclenchés par un bouton de commande (en fait il s'agit d'un générateur de discours politique fantaisiste (à partir de données trouvées sur internet : 8 discours différents découpés chacun en 4 tronçons, le programme choisit 4 tronçons au hasard).
Bien que le code du bouton paraisse correct je n'entends que le dernier tronçon, les 3 autres appelés avant restent silencieux. Je dois donc commettre une erreur avec l'utilisation de SoundPlayer.
Quelqu'un a-t-il rencontré ce type de problème ?
Afficher la suite 

7 réponses

0
Merci
Salut,

Pour lire du texte et plutôt que 'SoundPlayer', il serait préférable d'utiliser les composants inclus dans l'espace de noms 'System.Speech' (à référencer dans les propriétés du projet).

Sinon, sans bout de code, il est impossible de t'aider.
Messages postés
2
Date d'inscription
lundi 12 août 2013
Dernière intervention
12 août 2013
0
Merci
J'avais choisi SoundPlayer pour avoir toute latitude dans le style d'enregistrement de la voix (micro ou voix synthétique genre ACAPELA).
Le code du bouton de commande est :

Dim Premier1 = New System.Media.SoundPlayer("F:\VISUAL BASIC 2010 dossiers\Discours politique\Premier1.wav")
Dim Premier2... à 8....

prem = Int(Rnd(1) * 8) + 1

If prem = 1 Then
Premier1.Play()
End If
If prem = 2 à 8...

Dim Deuxième1 à 8
deux = Int(Rnd(1) * 8) + 1
If deux = 1 à 8...

Dim Troisième1 à 8....
trois = Int(Rnd(1) * 8) + 1

If trois = 1 à 8...

Dim Quatrième1 à 8
quatr = Int(Rnd(1) * 8) + 1

If quatr = 1 à 8..
Je devrais entendre 4 séquences à suivre : Première(prem) & Deuxième(deux) & Troisième(trois) & Quatrième(quatr). Mais une seule fonctionne - la dernière.
Un grand merci à ceux qui m'aident à solutionner ce bug.
Messages postés
3247
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
26 décembre 2018
51
0
Merci
Salut
en net pour obtenir un nombre aléatoire on utilise la class random
dim rn as new random
dim choice as integer
'rend un nombre entre 1 et 8
choice = rn.next(1,9)

pour le reste pas clair ce que tu veux faire
8 discours différents découpés chacun en 4 tronçons, le programme choisit 4 tronçons au hasard).
combien de fichier .wav as tu
Merci.Le souci ne vient pas du tirage des nombres aléatoires.

Pour mieux comprendre l'enchainement des sons à obtenir je dois dire que je me suis basé sur "cours de langue de bois.pdf" existant sur internet.
L'intérêt de ce petit programme est simplement de définir une méthode pour générer des sons successifs.
0
Merci
A mon avis, tous tes sons sont lus en même temps et l'on entend juste le dernier.
0
Merci
C'est exactement le problème.
Messages postés
378
Date d'inscription
samedi 22 septembre 2012
Dernière intervention
13 août 2017
13
0
Merci
Bonjour Larcheo.

Voici qui pourra peut-être vous aider, sachant que Tps est un Timer.

Imports System.Media.SystemSounds
Public Class Accueil
    Private i As Integer = 1

    Private Sub Btn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn1.Click
        Asterisk.Play()
        Beep.Play()
        Exclamation.Play()
        Hand.Play()
    End Sub

    Private Sub Btn2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Btn2.Click
        Tps.Enabled = True
    End Sub

    Private Sub Tps_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Tps.Tick
        Select Case i
            Case 1 : Asterisk.Play() : i = 2
            Case 2 : Beep.Play() : i = 3
            Case 3 : Exclamation.Play() : i = 4
            Case 4 : Hand.Play() : Tps.Enabled = False : i = 1
            Case Else
        End Select
    End Sub

End Class


Quand je clique sur le bouton Btn1, je n'entends que le son "Hand". Quand je clique sur le bouton Btn2, j'entends successivement les quatre sons.

Cordialement
0
Merci
Merci Zermelo, le timer et le select case représentent sans doute une bonne piste.

Il me reste à adapter la méthode pour des sons ne provenant pas du système (J'essaierai dans quelques jours).
Bien cordialement.
Merci encore à Zermelo, sa suggestion a été très utile.

J'ai réussi à coordonner les 32 séquences wav dans mon programme (constituant, en fait un tableau de 8 lignes en 4 colonnes).
J'ai utilisé 4 timers s'ouvrant successivement dans un ordre fixe (Premier, Deuxième, Troisième puis Quatrième).
A l'intérieur de chaque timer, je tire la valeur aléatoire de prem, deux, trois ou quatr pour aller vers une des 8 séquences Wav.

Le problème est donc résolu.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.