Tipp 0390 Sound-Dateien laden, abspielen, wiederholen
Autor/Einsender:
Datum:
  Alexander Csadek
30.03.2004
Entwicklungsumgebung:
DirectX-Version:
  VB 6
DirectX 8
Mit diesem Beispiel können Sound (z.B. WAV-Dateien) geladen und abgespielt werden. Dazu gibt es zwei Möglichkeiten, ein einmaliger Durchlauf bis zum Ende des Sounds oder ein wiederholtes Abspielen (Loop).
 
Option Explicit

Dim DX As New DirectX8
Dim DS As DirectSound8
Dim dsWavDatei As DirectSoundSecondaryBuffer8

Private Sub Form_Load()
  On Local Error GoTo ErrorHandler

  Set DS = DX.DirectSoundCreate("")
  DS.SetCooperativeLevel Me.hWnd, DSSCL_NORMAL
  Me.Show

  Exit Sub

ErrorHandler:
  MsgBox "Direct Sound Objekt konnte nicht initialisiert werden."
  End
End Sub

Private Sub cmd_Load_Click()
  Dim dsBDesc As DSBUFFERDESC

  On Error GoTo ErrorHandler

  With dsBDesc
    .lFlags = DSBCAPS_STATIC
  End With
  Set dsWavDatei = DS.CreateSoundBufferFromFile( _
        App.Path & "\Sound.wav", dsBDesc)

  cmd_Load.Enabled = False
  cmd_Play.Enabled = True
  Timer1.Enabled = True

  Exit Sub

ErrorHandler:
  MsgBox "Fehler beim Laden der Wav-Datei." & vbCr & _
        Err.Number & "/" & Err.Description
  End
End Sub

Private Sub cmd_Play_Click()
  If chk_Loop.Value = 0 Then
    dsWavDatei.Play DSBPLAY_DEFAULT
  Else
    dsWavDatei.Play DSBPLAY_LOOPING
  End If

  cmd_Play.Enabled = False
  chk_Loop.Enabled = False
End Sub

Private Sub cmd_Stop_Click()
  dsWavDatei.Stop
  dsWavDatei.SetCurrentPosition 0
  cmd_Play.Enabled = True
  chk_Loop.Enabled = True
End Sub

Private Sub cmd_Close_Click()
  Unload Me
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, _
      UnloadMode As Integer)
  Set dsWavDatei = Nothing
  Set DS = Nothing
  Set DX = Nothing
  End
End Sub

Private Sub Timer1_Timer()
  Dim dsc As DSCURSORS

  dsWavDatei.GetCurrentPosition dsc
  If dsc.lPlay > 0 Then
    cmd_Stop.Enabled = True
  Else
    cmd_Stop.Enabled = False
    cmd_Play.Enabled = True
    chk_Loop.Enabled = True
  End If

End Sub
 
Weitere Links zum Thema
Lautstärke, Balance, Frequenz & Cursorposition
Midi-Dateien abspielen (einfach)
Hinweis
Um dieses Beispiel ausführen zu können, wird die DirectX 8 for Visual Basic Type Library benötigt (siehe dazu die Erläuterungen in der DirectX-Rubrik).

Windows-Version
95
98/SE
ME
NT
2000
XP
Vista
Win 7
VB-Version
VBA 5
VBA 6
VB 4/16
VB 4/32
VB 5
VB 6


Download  (37,1 kB) Downloads bisher: [ 505 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Projekte | Tutorials | API-Referenz | VB-/VBA-Tipps | Komponenten | Bücherecke | VB/VBA-Forum | VB.Net-Forum | DirectX-Forum | Foren-Archiv | DirectX | VB.Net-Tipps | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Dienstag, 6. September 2011