' 如果需要更多的效果,设置相应的元素个数
Dim effd(0) As EffectDescription ''''''''描述集合
Dim eff As New EffectsEcho ''''''''''''结构,由于对象不能单独设置属性,只能用它间接修改
''''''''''''关键步骤,指定特效的类型
effd(0).GuidEffectClass = DSoundHelper.StandardEchoGuid ''''''''''''说明第一种效果是回声
''''''''''''软件,你要是用硬件,我也不反对
effd(0).LocateInSoftware = True
''''''''''''直接一次性提交给Buffer,提交的是一个数组
SB.SetEffects(effd)
''''''''''''声明一个特效对象,别忘了我们需要修改参数滴
Dim echo As EchoEffect
''''''''''''得到当前Buffer的效果
'''''''''''' 这个后面的0,正是你一次性传递过去的效果的index,忘了?就是刚才那个数组
echo = SB.GetEffects(0)
''''''''''''对象不能直接修改,所以用它来间接改
eff = echo.AllParameters
eff.WetDryMix = 50
eff.Feedback = 50
eff.LeftDelay = 500
eff.RightDelay = 500
eff.PanDelay = 0
''''''''''''OK,就这样,你可以尝试用其他数据代替里面的数值,其中LeftDelay跟RightDelay的定义域在1~2000,
'''''''''''' 你可以用echo的属性得到最大最小数值(方便了很多)
echo.AllParameters = eff
Me.Text = "echo ok"
End Sub
End Class
好了,复制过去直接运行就可.
我用了Echo作为例子来说明问题(估计这个用的也是最多,效果最明显的)还有很多,你参照微软的例子,再改改上面的代码就能轻松实现,我就不废话了.
下一步.录音
上一页 [1] [2] [3] [4] [系统软件]BCB6 下devexpress 安装手记 [常用软件]Internet Explorer 6 Public Preview 最新出击!! [常用软件]painter 6 手绘实例《油彩篇》 [常用软件]painter 6 手绘实例《粉彩篇》 [常用软件]Painter 6 手绘实例《胶彩篇》 [VB.NET程序]VB.NET实现DirectSound9 (8) 音效控制器 [VB.NET程序]VB.NET实现DirectSound9 (7) 录音 [VB.NET程序]VB.NET 实现DirectSound9 (5) DS3D2 [VB.NET程序]用VB.Net实现DirectSound9 (4) DS3D [VB.NET程序]VB.NET 使用DirectSound 3
|