|
Option Explicit
Dim objDX As New DirectX7
Dim objDS As DirectSound
Dim objDSB As DirectSoundBuffer
Dim blnLoaded As Boolean
Private Sub Form_Load()
On Local Error Resume Next
Set objDS = objDX.DirectSoundCreate("")
If Err.Number <> 0 Then
MsgBox "创建DirectSound失败!"
End
End If
objDS.SetCooperativeLevel Me.hWnd, DSSCL_NORMAL
LoadWaveFile
End Sub
Sub LoadWaveFile()
Dim bufferDesc As DSBUFFERDESC
Dim waveFormat As WAVEFORMATEX
Dim sndFile As String
sndFile = "c:\windows\media\logoff.wav"
bufferDesc.lFlags = DSBCAPS_CTRLPAN Or DSBCAPS_CTRLVOLUME Or DSBCAPS_STATIC
waveFormat.nFormatTag = WAVE_FORMAT_PCM
waveFormat.nChannels = 2 'stereo
waveFormat.lSamplesPerSec = 22050 '22kHz
waveFormat.nBitsPerSample = 16 '16-bit
waveFormat.nBlockAlign = waveFormat.nBitsPerSample / 8 * waveFormat.nChannels
waveFormat.lAvgBytesPerSec = waveFormat.lSamplesPerSec * waveFormat.nBlockAlign
Set objDSB = objDS.CreateSoundBufferFromFile(sndFile, bufferDesc, waveFormat)
If Err.Number <> 0 Then
MsgBox "ERROR!!"
End
End If
objDSB.SetVolume 0
objDSB.SetPan 0
Dim flag As Long
flag = 0
objDSB.Play flag
End Sub |
|