Jouer un son (fichier wav)

Résolu
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 28 sept. 2014 à 13:53
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 28 sept. 2014 à 16:19
Bonjour,

Dans ma ressource j'ai placé une liste de fichier wav chacun commence par mus
dans une list of string je récupère le titre de chaque fichier.
Je choisis aléatoirement un titre et voudrais jouer le wav correspondant.
 Private listmusics As New List(Of String)
For Each ResourceFile As DictionaryEntry In My.Resources.ResourceManager.GetResourceSet(Globalization.CultureInfo.CurrentCulture, True, True).OfType(Of Object)()
If TypeOf (ResourceFile.Key) Is String Then
If ResourceFile.Key.ToString.StartsWith("mus") Then
listmusics.Add(ResourceFile.Key.ToString)
End If
End If
Next


Dim rdn As New Random
Dim x As Integer

x = rdn.Next(0, listmusics.Count)
listmusic(x) est le titre choisi maintenant comment jouer le wav correspondant
My.Computer.Audio.Play(My.Resources.listmusics(x))
n'est pas accepté
ou soit écrire un select case
Select Case listmusics(x)
Case "muscondor1" : My.Computer.Audio.Play(My.Resources.muscondor1, AudioPlayMode.Background)
Case "muscondor2" : My.Computer.Audio.Play(My.Resources.muscondor2, AudioPlayMode.Background)
End Select

si j'ai plus de 50 wav il y a 50 case !!!!
il y a peut etre une autre méthode ?
Merci d'avance

2 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
28 sept. 2014 à 15:08
Bonjour,

D'après la documentation http://msdn.microsoft.com/en-us/library/cf1shcah%28v=vs.90%29.aspx
Tu peux mettre un nom de fichier ou un flux, je te suggère de voir une source qui permet d'extraire une ressources d'un projet en exécution, pour voir comment récupérer le flux qui va avec.
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
28 sept. 2014 à 16:19
Bonjour

Merci j'ai trouvé une solution

private listmusics As New List(Of System.IO.UnmanagedMemoryStream)

For Each ResourceFile As DictionaryEntry In My.Resources.ResourceManager.GetResourceSet(Globalization.CultureInfo.CurrentCulture, True, True).OfType(Of Object)()
If TypeOf (ResourceFile.Key) Is String Then
If ResourceFile.Key.ToString.StartsWith("mus") Then
listmusics.Add(CType(ResourceFile.Value, System.IO.UnmanagedMemoryStream))
End If
End If
Next

Dim rdn As New Random
Dim x As Integer

x = rdn.Next(0, listmusics.Count)

My.Computer.Audio.Play(listmusics(x), AudioPlayMode.WaitToComplete)
0
Rejoignez-nous