首页 > 学院 > 开发设计 > 正文

如何从SOUND.DRV中提取声音

2019-11-18 17:37:04
字体:
来源:转载
供稿:网友
'-------------------------------------------------------------------
'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->


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表