Jouer un son (fichier wav) [Résolu]

Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
- - Dernière réponse : cs_ShayW
Messages postés
3258
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
Afficher la suite 

2 réponses

Messages postés
14617
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
14 janvier 2020
138
0
Merci
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.
Commenter la réponse de NHenry
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
46
0
Merci
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)
Commenter la réponse de cs_ShayW