龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VB开发 >

如何从SOUND.DRV中提取声音

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
------------------------------------------------------------------- Author:GordonF.MacLeod HowtoextractsoundsfromtheSOUND.DRVlibrary.. Hereare4differentsoundeffectsthatcancalled viaAPIstothe"SOUND.DRV"library.Youcanmodify thevaluestocreateyo
'-------------------------------------------------------------------
  'Author:GordonF.MacLeod
  'HowtoextractsoundsfromtheSOUND.DRVlibrary..
  'Hereare4differentsoundeffectsthatcancalled
  'viaAPI'stothe"SOUND.DRV"library.Youcanmodify
  'thevaluestocreateyourownuniquesounds.
  'DeclaretheseAPI's:
  
  DeclareFunctionOpenSoundLib"sound.drv"()
  DeclareFunctionVoiceQueueSizeLib"sound.drv"(ByValnVoice,ByValnByteS)
  DeclareFunctionSetVoiceSoundLib"sound.drv"(ByValnSource,ByValFreq&,
  ByValnDuration)
  DeclareFunctionStartSoundLib"sound.drv"()
  DeclareFunctionCloseSoundLib"sound.drv"()
  DeclareFunctionWaitSoundStateLib"sound.drv"(ByValState)
  
  'Addthisroutine,tobeusedwithSirenSound1routine
  
  SubSound(ByValFreqAsLong,ByValDurationAsInteger)
  DimSAsInteger
  'Shiftfrequencytohighbyte.
  Freq=Freq*2^16
  S=SetVoiceSound(1,Freq,Duration)
  S=StartSound()
  While(WaitSoundState(1)<>0):Wend
  EndSub
  
  
  'Herearethe4soundroutines:
  
  '*AttentionSound#1*
  SubAttenSound1()
  DimSucc,SAsInteger
  Succ=OpenSound()
  S=SetVoiceSound(1,1500*2^16,50)
  S=SetVoiceSound(1,1000*2^16,50)
  S=SetVoiceSound(1,1500*2^16,100)
  S=SetVoiceSound(1,1000*2^16,100)
  S=SetVoiceSound(1,800*2^16,40)
  
  S=StartSound()
  While(WaitSoundState(1)<>0):Wend
  Succ=CloseSound()
  
  EndSub
  
  '*ClickSound#1*
  SubClickSound1()
  DimSucc,SAsInteger
  Succ=OpenSound()
  S=SetVoiceSound(1,200*2^16,2)
  S=StartSound()
  While(WaitSoundState(1)<>0):Wend
  Succ=CloseSound()
  
  EndSub
  
  '*ErrorSound#1*
  SubErrorSound1()
  DimSucc,SAsInteger
  Succ=OpenSound()
  S=SetVoiceSound(1,200*2^16,150)
  S=SetVoiceSound(1,100*2^16,100)
  S=SetVoiceSound(1,80*2^16,90)
  S=StartSound()
  While(WaitSoundState(1)<>0):Wend
  Succ=CloseSound()
  EndSub
  
  '*SirenSound#1*
  SubSirenSound1()
  DimSuccAsInteger
  DimJAsLong
  Succ=OpenSound()
  ForJ=440To1000Step5
  CallSound(J,J/100)
  NextJ
  ForJ=1000To440Step-5
  CallSound(J,J/100)
  NextJ
  Succ=CloseSound()
  
  EndSub->

精彩图集

赞助商链接