⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 modreswav.bas

📁 一个使用数学方法生成波形声音文件的源代码
💻 BAS
字号:
Attribute VB_Name = "ModResWav"
' ModResWav.bas   ~Wavettes~

Option Explicit

Public Declare Function PlayWAV Lib "winmm.dll" Alias "PlaySoundA" _
(lpData As Any, ByVal hModule As Long, ByVal dwFlags As Long) As Long


Public Const SND_ASYNC = &H1         ' return to program immediately
Public Const SND_MEMORY = &H4        ' play the sound from memory
Public Const SND_NODEFAULT = &H2     ' don't play the default sound if not available
'Public Const SND_NOSTOP = &H10       ' don't stop a currently playing sound
'Public Const SND_NOWAIT = &H2000     ' return immediately if driver not available
Public Const SND_PURGE = &H40        ' purge non-static events for task
Public Const SND_LOOP = &H8          ' loop the sound until next sndPlaySound
'Public Const SND_RESOURCE = &H40004  ' play from resource

Private Declare Sub CopyMemory Lib "Kernel32" Alias "RtlMoveMemory" _
   (Destination As Any, Source As Any, ByVal Length As Long)

Private Declare Function PlaySound Lib "winmm.dll" Alias "sndPlaySoundA" _
   (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Private WAVData$, WAVData2$
Private Sound() As Byte


Public Sub LoadWav()
Dim U As Long
   Sound = LoadResData(101, "PLAYFIRST")
   U = UBound(Sound()) + 1
   WAVData$ = Space$(U)
   CopyMemory ByVal WAVData$, Sound(0), U
   
   Sound = LoadResData(102, "NONAME")
   U = UBound(Sound()) + 1
   WAVData2$ = Space$(U)
   CopyMemory ByVal WAVData2$, Sound(0), U
End Sub
Public Sub PlayFirst()
   ' Complete play first
   PlaySound ByVal WAVData$, SND_NODEFAULT Or SND_MEMORY 'Or SND_NOSTOP
End Sub

Public Sub PlayNoName()
   ' Complete play first
   PlaySound ByVal WAVData2$, SND_NODEFAULT Or SND_MEMORY 'Or SND_NOSTOP
End Sub

Public Sub StopPlay()
   'PlaySound 0, SND_PURGE
   PlayWAV vbNull, 0, SND_PURGE
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -