Bonjour,
Les sons de mon interface sont gérés par un module de classe
J'ai donc:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| Public Class UISound
Public Shared WithEvents musicPlayer As New WMPLib.WindowsMediaPlayer
Public Shared Sub PlayMusic(ByVal url As String)
musicPlayer = New WMPLib.WindowsMediaPlayer
musicPlayer.URL = url
volumeMusic()
musicPlayer.controls.play()
End Sub
Public Shared Sub volumeMusic()
musicPlayer.settings.volume = My.Settings.music_volume / 10
End Sub
Public Shared Sub musicPlayer_MediaEnded(ByVal NewState As Integer) Handles musicPlayer.PlayStateChange
If NewState = WMPLib.WMPPlayState.wmppsStopped Then
musicPlayer.close()
End If
End Sub
End Class |
Et dans la fenêtre principale de mon application j’appelle le son ainsi:
UISound.PlayMusic("son1.wav")
Parfait!!
Dans mon application il y a un lancement d'une autre application et je veux qu'il y ait un son juste avant ce lancement
J'ai donc:
1 2 3 4 5 6 7 8 9 10 11 12 13
| Sub launchGame(ByVal romn)
UISound.PlayMusic("voice1.wav")
Dim myProcess As New Process()
myProcess.StartInfo.FileName = appName
myProcess.StartInfo.WorkingDirectory = appDir
myProcess.StartInfo.Arguments = appCmd
myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
myProcess.Start()
Me.Topmost = False
myProcess.WaitForExit()
myProcess.Close()
Me.Topmost = True
End Sub |
...et bien le son se lance (ou du moins n'est entendu!) que lorsque l'application lancée est terminée et que l'on revient sur la mienne!
J'ai fait un test, et le fait d'enlever
permet d'entendre le son. C'est comme si tout allait "trop vite" et que, bien que l'instruction de lecture du son soit faite avant de lancer l'application extérieure, le fait de tomber sur le 'myProcess.WaitForExit' l'interrompe momentanément!?
Est-ce bien cela qui se passe?
Comment faire pour assurer la lecture du son jusqu'au bout pendant le lancement de l'application extérieure (ou au pire, juste avant)
Merci!!
Partager