Results 1 to 2 of 2

Thread: What's wrong here (DX8 midi)?

  1. #1

    Thread Starter
    Fanatic Member alkatran's Avatar
    Join Date
    Apr 2002
    Location
    Canada
    Posts
    860

    What's wrong here (DX8 midi)?

    I get nothing but silence when this is done

    assume the subs are called top to bottom
    VB Code:
    1. Option Explicit
    2.  
    3. Dim DX As DirectX8
    4. Dim DSound As DirectSound8
    5. Dim DSAudio  As IBasicAudio 'Basic Audio Objectt
    6. Dim DSEvent As IMediaEvent 'MediaEvent Object
    7. Dim DSControl As IMediaControl 'MediaControl Object
    8. Dim DSPosition As IMediaPosition 'MediaPosition Object
    9.  
    10. Public DisableSound As Boolean
    11. Public DisableMusic As Boolean
    12.  
    13. Public Sub InitDirectX8(ByVal Handle As Long)
    14.     Set DX = New DirectX8
    15.    
    16.     Set DSound = DX.DirectSoundCreate("")
    17.     DSound.SetCooperativeLevel Handle, DSSCL_NORMAL
    18. End Sub
    19. Public Sub LoadMusic(FileName As String)
    20. 'On Error GoTo ErrorHandle:
    21.    
    22.     Set DSControl = New FilgraphManager
    23.    
    24.     FileName = App.Path & "\tilesets\" & FileName
    25.     Select Case Right(FileName, 4)
    26.     Case ".wav", ".mid", ".mp3"
    27.     Case Else
    28.         If Dir(FileName & ".mid") <> "" Then
    29.             FileName = FileName + ".mid"
    30.         ElseIf Dir(FileName & ".mp3") <> "" Then
    31.             FileName = FileName + ".mp3"
    32.         End If
    33.     End Select
    34.    
    35.     Call DSControl.RenderFile(FileName) 'yes, a valid midi file
    36.     Set DSAudio = DSControl
    37.     DSAudio.Volume = 0
    38.     DSAudio.Balance = 0
    39.    
    40.     Set DSEvent = DSControl
    41.     Set DSPosition = DSControl
    42.     If ObjPtr(DSPosition) Then DSPosition.Rate = 1#
    43.     DSPosition.CurrentPosition = 0
    44. end sub
    45. Public Sub PlayMusic()
    46. 'On Error Resume Next
    47.     If DisableMusic = False Then
    48.         DSControl.Stop
    49.         DSPosition.CurrentPosition = 0
    50.         DSPosition.Rate = 1
    51.         DSAudio.Volume = 0
    52.         DSAudio.Balance = 0
    53.         DSControl.Run
    54.     End If
    55. End Sub
    Don't pay attention to this signature, it's contradictory.

  2. #2
    Elite Hacker Jacob Roman's Avatar
    Join Date
    Aug 2004
    Location
    Miami Beach, FL
    Posts
    5,349
    This may help ya.

    http://216.5.163.53/DirectX4VB/Tutor...8/DA_Music.asp

    I never use DirectMusic cause I believe DirectShow is better. Runs MP3's, MPEG's, and AVI'S. Makes my games more interesting. But I hope this helps you.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width