VBiB/ACCB.net - Visual Basic in België | .net Ineta User Group  
(login to hide)
Hoofdmenu

Advertenties

Het Computer Winkeltje HCW


Evenementen

WAV GELUIDEN - Oud Forum inhoud (alleen lezen)
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.

Start - Zoeken op oude forum

 

 
Postnuke - ADODB Database - PHP 4/5 - pnPhpBB2 - Hosting bij Openminds
Met dank aan Jürgen voor de jarenlange inzet van visualbasic.be (anno 21-12-2000)
vbib.be gestart op 1/03/06 (extra vanaf 1/09: vbnet.be en vbdotnet.be)
VBiB is gerelateerd met wintips.be

Nieuwsbrief RSS Feed: backend.php