Lire un des son de mes ressources, mais avec des variables

Hugo - 19 janv. 2017 à 09:58
Whismeril Messages postés 19146 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 4 octobre 2024 - 19 janv. 2017 à 20:04
Bonjour,
Je sais que le titre est très mal expliqué, mais voilà, j'ai 3 sons en.waw dans mes ressources nommé par exemple Jean1, Jean2 et Jean3. Un petit code génère un nombre aléatoire de 1 à 3.
J'aimerais simplement jouer le son en faisant genre :
My.Computer.Audio.Play(My.Resources.("Jean" & nbaléatoire & ".wav"), AudioPlayMode.Background)
A voir également:

6 réponses

Whismeril Messages postés 19146 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 4 octobre 2024 660
19 janv. 2017 à 10:09
Bonjour

regarde du coté de la classe Random
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 137
19 janv. 2017 à 10:11
Bonjour,

comme ceci

Select Case nbaléatoire 
                Case 1
                  My.Computer.Audio.Play(My.Resources.Jean1.wav), AudioPlayMode.Background) 'adapter la resource
                Case 2
                   My.Computer.Audio.Play(My.Resources.Jean2.wav), AudioPlayMode.Background)'adapter la resource
                Case 3
                    My.Computer.Audio.Play(My.Resources.Jean3.wav), AudioPlayMode.Background)'adapter la resource
End Select

0
Le problème avec ce code, c'est que sa ne marche pas parce que - Impossible de convertir une valeur de type 'UnmanagedMemoryStream' en 'String'. - car mon code pour la valeur aléatoire est:
Dim rm As New Random
nbaléatoire = rm.Next(1, 4)
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 137
Modifié par cs_Le Pivert le 19/01/2017 à 13:14
Il faut mettre tes fichiers wav dans le dossier de l'executable avec ce code:

   My.Computer.Audio.Play(Application.StartupPath & "\Jean1.wav", AudioPlayMode.Background) 'joue en arrière plan


Ce code ne fonctionne pas avec les fichiers Resources . Il faut un chemin

My.Computer.Audio.Play(My.Resources.Jean1.wav), AudioPlayMode.Background) 'adapter la resource
           


Il ne faut pas oublier de déclarer
nbaléatoire en Integer


@+ Le Pivert
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Karin.code Messages postés 183 Date d'inscription vendredi 2 septembre 2016 Statut Membre Dernière intervention 16 janvier 2018 2
19 janv. 2017 à 16:30
Bonsoir,
Si tu fais comme ça
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim nbraleatoire As Integer = 0
nbraleatoire = TextBox1.Text 'Remplace TextBox1.Text par le nombre aléatoire généré par ton code
Dim Son As System.Media.SoundPlayer
If nbraleatoire = 1 Then
Son = New System.Media.SoundPlayer(My.Resources.Jean1)
ElseIf nbraleatoire = 2 Then
Son = New System.Media.SoundPlayer(My.Resources.Jean2)
ElseIf nbraleatoire = 3 Then
Son = New System.Media.SoundPlayer(My.Resources.Jean3)
End If
Son.Play()
End Sub

ça devrait marcher
0
Whismeril Messages postés 19146 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 4 octobre 2024 660
19 janv. 2017 à 17:32
Bonsoir Karin, oui dans l'absolue ça devrait marcher, mais plus haut LePivert a propose un Select Case, qui sert à éviter les cascade de If EsleIf, et Hugo a dit que cela ne lui convenait pas.
0
Oui j'ai 24 "jean" donc.. Je voulais mais évité de le mettre dans un dossier mais tempi .. merci pour toute vos réponses.
0
Whismeril Messages postés 19146 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 4 octobre 2024 660
19 janv. 2017 à 20:04
Bonsoir

        Dim mesRessources As ResourceManager = My.Resources.ResourceManager

        Dim maRessource As Object = mesRessources.GetObject("Image1")

0
Rejoignez-nous