| U bevindt zich > Oude forum > Visual Basic .Net > Algemeen (VB.Net) > wav geluiden |
| Gepost door Luckie gepost op 22/01/2006 om 22:20 |
Hallo,
Ik heb verschillende .wav bestanden met geluiden.
Hoe kan ik verschillende .wav geluiden achter elkaar zetten.
Een voorbeeld : ik heb de geluiden deur, open , dicht.
Als deur open is moet het " deur open" zijn.
Als deur dicht is moet het "deur dicht" zijn.
Ik kan één geluid afspelen , maar hoe moet ik het tweede er achter plaatsen?
Weet iemand raad hiermee?
|
| Gepost door Don Delegate gepost op 23/01/2006 om 09:00 |
| Speel ze na elkaar af? |
| Gepost door Luckie gepost op 23/01/2006 om 09:19 |
Probeer ik op deze manier, maar speelt alleen laatste af!
A = "d:GELUIDENPICTODEUR.WAV"
B = "d:GELUIDENPICTOOPEN.WAV"
AxWindowsMediaPlayer1.URL = A
AxWindowsMediaPlayer1.Ctlcontrols.play()
AxWindowsMediaPlayer1.URL = B
AxWindowsMediaPlayer1.Ctlcontrols.play()
Kan ik de twee .wav samen laden? of op andere manier afspelen?
|
| Gepost door Don Delegate gepost op 23/01/2006 om 09:51 |
Misschien zoiets? Met wavs opgenomen als embedded resources in .exe (misschien bestaat ook de mogelijkheid rechtstreeks een resource te spelen). Je kan ook player.SoundLocation gebruiken als je van een URL wil laden.
Code:
Dim assembly As System.Reflection.Assembly = _ System.Reflection.Assembly.GetExecutingAssembly()
Dim root As String = assembly.GetName().Name
Dim s1 As System.IO.Stream = _ assembly.GetManifestResourceStream(root + "." + "opendeur.wav")
Dim s2 As System.IO.Stream = _ assembly.GetManifestResourceStream(root + "." + "sluitdeur.wav")
Dim player As New Media.SoundPlayer
Try
player.Stream = s2
' gebruik de UI thread ' Play gebruikt een nieuwe thread, je hoort dan alleen ' de laastste player.PlaySync()
player.Stream = s1
player.PlaySync()
Finally
s1.Close()
s2.Close()
End Try
|
Nadeel is wel dat je UI even "bevriest" omdat de geluiden in de UI thread worden afgespeeld.
|
| Gepost door Don Delegate gepost op 23/01/2006 om 10:05 |
Ahum, bovenstaande code is voor .NET 2.0 Voor .NET 1.1 kan je misschien beter PInvoke gebruiken (de PlaySound functie in winmm.dll):
Code:
<DllImport("winmm.dll", CharSet:=CharSet.Auto)> _
Private Shared Function PlaySound(<MarshalAs(UnmanagedType.LPWStr)> _
ByVal soundName As String, ByVal hmod As IntPtr, ByVal soundFlags As Integer) As Boolean
End Function
Private Sub twoSoundsNative() Dim url1 As String = Application.StartupPath + "" + "opendeur.wav" Dim url2 As String = Application.StartupPath + "" + "sluitdeur.wav" PlaySound(url1, IntPtr.Zero, 2) PlaySound(url2, IntPtr.Zero, 2) End Sub
| |
| Gepost door RedThread gepost op 23/01/2006 om 10:21 |
Genoeg voorbeelden op het net te vinden Luckie zoek
|
| Gepost door Luckie gepost op 23/01/2006 om 13:31 |
Bedankt
Ben er nog niet, maar al goed op weg.
|