Imports Microsoft.DirectX Public Class cls_audio Friend Shared myThread As System.Threading.Thread Shared bPLAYING As Boolean = False #Region "CLASS SOUND" Public Class SOUND <MTAThread()> _ Shared Sub Open(ByVal fSoundMedia As String) If bPLAYING = False Then bPLAYING = True SOUND_FONCTIONS.SoundFile = fSoundMedia cls_audio.myThread = New System.Threading.Thread(AddressOf SOUND_FONCTIONS.PlayMusic) cls_audio.myThread = myThread cls_audio.myThread.Priority = Threading.ThreadPriority.BelowNormal cls_audio.myThread.Start() Else bPLAYING = False SOUND_FONCTIONS.StopMusic() End If End Sub Shared Property MusicLoop() Get MusicLoop = SOUND_FONCTIONS.StartLoop End Get Set(ByVal value) SOUND_FONCTIONS.StartLoop = value End Set End Property Shared Sub Close() System.Threading.Thread.Sleep(250) SOUND_FONCTIONS.StopMusic() End Sub End Class #End Region #Region "CLASS SOUND_FONCTIONS" Private Class SOUND_FONCTIONS Friend Shared SoundFile As String, StartLoop As Boolean Shared myMusic As Microsoft.DirectX.AudioVideoPlayback.Audio = Nothing Shared Sub PlayMusic() myMusic = New Microsoft.DirectX.AudioVideoPlayback.Audio(SoundFile, False) myMusic.Play() While myMusic.Playing True And bPLAYING True If myMusic.CurrentPosition = myMusic.Duration Then If StartLoop True And bPLAYING True Then myMusic.StopWhenReady() myMusic.CurrentPosition = 0 myMusic.Play() Else Exit While End If End If System.Threading.Thread.Sleep(250) End While SOUND_FONCTIONS.StopMusic() End Sub Shared Sub StopMusic() bPLAYING = False myMusic.Stop() myMusic.Dispose() myMusic = Nothing If cls_audio.myThread.IsAlive = True Then cls_audio.myThread.Abort() End Sub End Class #End Region End Class
Imports Microsoft.DirectX Imports Microsoft.DirectX.AudioVideoPlayback Public Class cls_audio #Region "CLASS MUSIC" Public bPLAY As Boolean = False Private bLOOP As Boolean = False Dim myMusic As Audio = Nothing Private Function MusicEndsLoop() As Boolean MusicEndsLoop = True While bLOOP = True If myMusic.Stopped = True Then StopMusic() Exit While End If System.Threading.Thread.Sleep(500) End While MusicEndsLoop = False End Function Public Sub StopMusic() myMusic.Stop() myMusic.Dispose() myMusic = Nothing bPLAY = False bLOOP = False End Sub Public Sub PlayMusic(ByVal fSoundMedia As String, Optional ByVal bLOOP As Boolean = False) If bPLAY = False Then gtLOOP: myMusic = New Audio(fSoundMedia, True) myMusic.Play() bPLAY = True If myMusic.Playing = True Then If MusicEndsLoop() = True Then GoTo gtLOOP End If Else StopMusic() End If End Sub #End Region End Class
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionImports Microsoft.DirectX Public Class cls_audio #Region "CLASS MUSIC" Public bPLAY As Boolean = False Friend bLOOP As Boolean = False Protected myMusic As Microsoft.DirectX.AudioVideoPlayback.Audio = Nothing Dim myThread As New System.Threading.Thread(AddressOf MusicEndsLoop) Private Sub MusicEndsLoop() While myMusic.Playing = True If bPLAY False And bLOOP False Then Exit While If myMusic.CurrentPosition = myMusic.Duration Then If bLOOP = True Then myMusic.StopWhenReady() myMusic.CurrentPosition = 0 myMusic.Play() Else StopMusic() Exit While End If End If System.Threading.Thread.Sleep(1000) End While myThread.Abort() End Sub Public Sub StopMusic() If myThread.IsBackground = True Then myThread.Abort() bPLAY = False bLOOP = False myMusic.Stop() myMusic.Dispose() myMusic = Nothing End Sub Public Sub PlayMusic(ByVal fSoundMedia As String, ByVal bSoundLoop As Boolean) bLOOP = bSoundLoop If bPLAY = False Then bPLAY = True myMusic = New Microsoft.DirectX.AudioVideoPlayback.Audio(fSoundMedia, False) myMusic.Play() myThread.Start() Else StopMusic() End If End Sub #End Region End Class
Imports Microsoft.DirectX Public Class cls_audio Friend Shared myThread As System.Threading.Thread Shared bPLAYING As Boolean = False #Region "CLASS SOUND" Public Class SOUND <MTAThread()> _ Shared Sub Open(ByVal fSoundMedia As String) If bPLAYING = False Then bPLAYING = True SOUND_FONCTIONS.SoundFile = fSoundMedia cls_audio.myThread = New System.Threading.Thread(AddressOf SOUND_FONCTIONS.PlayMusic) cls_audio.myThread = myThread cls_audio.myThread.Priority = Threading.ThreadPriority.BelowNormal cls_audio.myThread.Start() Else bPLAYING = False SOUND_FONCTIONS.StopMusic() End If End Sub Shared Property MusicLoop() Get MusicLoop = SOUND_FONCTIONS.StartLoop End Get Set(ByVal value) SOUND_FONCTIONS.StartLoop = value End Set End Property Shared Sub Close() System.Threading.Thread.Sleep(250) SOUND_FONCTIONS.StopMusic() End Sub End Class #End Region #Region "CLASS SOUND_FONCTIONS" Private Class SOUND_FONCTIONS Friend Shared SoundFile As String, StartLoop As Boolean Shared myMusic As Microsoft.DirectX.AudioVideoPlayback.Audio = Nothing Shared Sub PlayMusic() myMusic = New Microsoft.DirectX.AudioVideoPlayback.Audio(SoundFile, False) myMusic.Play() While myMusic.Playing = True If myMusic.CurrentPosition = myMusic.Duration Then If StartLoop = True Then myMusic.StopWhenReady() myMusic.CurrentPosition = 0 myMusic.Play() Else Exit While End If End If System.Threading.Thread.Sleep(250) End While SOUND_FONCTIONS.StopMusic() End Sub Shared Sub StopMusic() myMusic.Stop() myMusic.Dispose() myMusic = Nothing If cls_audio.myThread.IsAlive = True Then cls_audio.myThread.Abort() End Sub End Class #End Region End Class
Imports Microsoft.DirectX Public Class cls_audio Friend Shared myThread As System.Threading.Thread Shared bPLAYING As Boolean = False #Region "CLASS SOUND" Public Class SOUND <MTAThread()> _ Shared Sub Open(ByVal fSoundMedia As String) If bPLAYING = False Then bPLAYING = True SOUND_FONCTIONS.SoundFile = fSoundMedia cls_audio.myThread = New System.Threading.Thread(AddressOf SOUND_FONCTIONS.PlayMusic) cls_audio.myThread = myThread cls_audio.myThread.Priority = Threading.ThreadPriority.BelowNormal cls_audio.myThread.Start() Else bPLAYING = False SOUND_FONCTIONS.StopMusic() End If End Sub Shared Property MusicLoop() Get MusicLoop = SOUND_FONCTIONS.StartLoop End Get Set(ByVal value) SOUND_FONCTIONS.StartLoop = value End Set End Property Shared Sub Close() System.Threading.Thread.Sleep(250) SOUND_FONCTIONS.StopMusic() End Sub End Class #End Region #Region "CLASS SOUND_FONCTIONS" Private Class SOUND_FONCTIONS Friend Shared SoundFile As String, StartLoop As Boolean Shared myMusic As Microsoft.DirectX.AudioVideoPlayback.Audio = Nothing Shared Sub PlayMusic() myMusic = New Microsoft.DirectX.AudioVideoPlayback.Audio(SoundFile, False) myMusic.Play() While myMusic.Playing = True If myMusic.CurrentPosition = myMusic.Duration Then If StartLoop = True Then myMusic.StopWhenReady() myMusic.CurrentPosition = 0 myMusic.Play() Else Exit While End If End If System.Threading.Thread.Sleep(250) End While SOUND_FONCTIONS.StopMusic() End Sub Shared Sub StopMusic() myMusic.Stop() myMusic.Dispose() myMusic = Nothing If cls_audio.myThread.IsAlive = True Then cls_audio.myThread.Abort() End Sub End Class #End Region End Class
Imports Microsoft.DirectX Public Class cls_audio Friend Shared myThread As System.Threading.Thread Shared bPLAYING As Boolean = False #Region "CLASS SOUND" Public Class SOUND <MTAThread()> _ Shared Sub Open(ByVal fSoundMedia As String) If bPLAYING = False Then bPLAYING = True SOUND_FONCTIONS.SoundFile = fSoundMedia cls_audio.myThread = New System.Threading.Thread(AddressOf SOUND_FONCTIONS.PlayMusic) cls_audio.myThread = myThread cls_audio.myThread.Priority = Threading.ThreadPriority.BelowNormal cls_audio.myThread.Start() Else bPLAYING = False SOUND_FONCTIONS.StopMusic() End If End Sub Shared Property MusicLoop() Get MusicLoop = SOUND_FONCTIONS.StartLoop End Get Set(ByVal value) SOUND_FONCTIONS.StartLoop = value End Set End Property Shared Sub Close() System.Threading.Thread.Sleep(250) SOUND_FONCTIONS.StopMusic() End Sub End Class #End Region #Region "CLASS SOUND_FONCTIONS" Private Class SOUND_FONCTIONS Friend Shared SoundFile As String, StartLoop As Boolean Shared myMusic As Microsoft.DirectX.AudioVideoPlayback.Audio = Nothing Shared Sub PlayMusic() myMusic = New Microsoft.DirectX.AudioVideoPlayback.Audio(SoundFile, False) myMusic.Play() While myMusic.Playing = True If myMusic.CurrentPosition = myMusic.Duration Then If StartLoop = True Then myMusic.StopWhenReady() myMusic.CurrentPosition = 0 myMusic.Play() Else Exit While End If End If System.Threading.Thread.Sleep(250) End While SOUND_FONCTIONS.StopMusic() End Sub Shared Sub StopMusic() myMusic.Stop() myMusic.Dispose() myMusic = Nothing If cls_audio.myThread.IsAlive = True Then cls_audio.myThread.Abort() End Sub End Class #End Region End Class