Het afspelen van een wav file te stoppen

Status
Niet open voor verdere reacties.

satriano17

Gebruiker
Lid geworden
30 sep 2012
Berichten
342
dag
Met onderstande code kan ik een wav file laten spelen.
'n een module
Code:
Const SND_ASYNC = &H1
Const SND_LOOP = &H8

Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal _
    lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long


Function PlayWAV(FileName As String, Optional SyncExec As Boolean) As Boolean
    If SyncExec Then
        
        PlayWAV = PlaySound(FileName, 0, SND_ASYNC Or SND_LOOP)

    Else
        
        PlayWAV = PlaySound(FileName, 0, SND_ASYNC Or SND_LOOP)

    End If
End Function

'op het form
Private Sub Command1_Click()
Const SND_LOOP = &H8
PlayWAV (App.Path & "\wavfiles\1.wav")
End Sub
Alles werkt perfect. Tot hier geen probleem.
Echter ik kan niet meer laten stoppen. Ik heb ook in msdn gezocht en op het net
maar ik kon geen bruikbaar oplossing vinden.

Ik wil gewoon dat, dmv van een command button, het wav file di speelt, stopt.
Enige idee hoe dat moet?
dank u
satriano
 
Hoi,

Allereerst welkom op helpmij.nl! :)

Dan, gebruik je vb.net of gebruik je vba? Dat is toch wel een klein puntje om even aan te geven. Ik ken namelijk de volgende code om wav bestanden af te spelen (vb.net):
[CPP]My.Computer.Audio.Play("Bestand", AudioPlayMode.Background)[/CPP]
En dan dit om te stoppen:
[CPP]My.Computer.Audio.Stop()[/CPP]
Ik denk niet dat dat werkt in vba... Maar je kan het proberen :)

Succes!

MartinJM
 
bedankt voor de reactie , martin,maar...ik gebruik nog vb6.
Dus uw tip werkt niet voor visualbasic 6
ik heb niet gezegd dat over vb6b ging, mijn excuses daarvoor.
ik hoop nog op de juiste reactie en oplossing
Toch nogmaals bedankt
satriano
 
Beste Martin, het is opgelost !!
Dankzij uw link heb ik kunnen vinden wat ik zocht.
Ik heb natuurlijk alles een beetje aangepast aan mijn geval.
Uitendelijk is de oplossing zo gewoorden. Ik post alles voor iemand anders met hetzelfde probleem.
Code:
Option Explicit

Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" _
         (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
 
Private Const SND_SYNC = &H0
Private Const SND_ASYNC = &H1
Private Const SND_NODEFAULT = &H2
Private Const SND_LOOP = &H8
Private Const SND_NOSTOP = &H10
Private Const wFlags = SND_ASYNC Or SND_LOOP

Public Sub Play_LOOP(wavFile As String)
   sndPlaySound wavFile, wFlags
End Sub

Public Sub StopPlay_LOOP()
   sndPlaySound vbNullString, SND_NODEFAULT
End Sub


Option Explicit

Dim myFileName$
  
Private Sub Command2_Click()
myFileName = App.Path & "\1.wav"
        Play_LOOP myFileName
End Sub
Private Sub Command1_Click()
StopPlay_LOOP
End Sub
Dank u !!
Ik was zeker 2 weken bezig maar ik kon niet oplossen. Dankzij uw reactie kan ik nu verder met het programma.
Nogmaals dank.
En zeker.... tot ziens.
satriano
 
Laatst bewerkt:
Fijn!

Druk je dan even rechtsboven je eerste post op "vraag opgelost"?

MartinJM
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan