,歡迎訪問網頁設計愛好者web開發。第二步分,如何控制音量的大小
如果想控制音量大小跟左右聲道或者播放速度,那么創建buf之前還需要做一些工作
創建一個bufferdescription對象
 dim desc as new bufferdescription
設置desc的屬性
 desc.controlpan = true
 desc.controlvolume = true
 desc.controlfrequency = true
(當然這里還有其他功能,以后再說,3d那里我還沒有研究,一步一步的來)
完成之后,可以創建了,跟一開始的不一樣了,多了一個desc
 buf = new secondarybuffer("g:/media/wav/rod2.wav", desc, ad)
(微軟:你要控制音量大小可以說嘛,雖然你很深情的望著我,但是你不說我會怎么知道呢.....)
記住,上面僅僅是說明你可以改面音量大小了,但是還沒有提到怎么改變.
buf.volume=0 '這個聲音就是最大了
buf.volume=-5000 '微軟給的例子是-5000 實際上 -50的時候就聽不見什么動靜了..
buf.pan=0 '兩邊聲道均衡 -10000 跟 10000 是左右聲道
buf.frequency= desc.format.samplespersecond '默認的聲音 44khz 就是 44100 這個是速度
ok,速度一般不需要多大的變化.偶爾玩玩是可以,實際意義就不大了.
改動之后的代碼
======================================
 dim ad as device
 dim buf as secondarybuffer
 private sub form1_load(byval sender as system.object, byval e as system.eventargs) handles mybase.load
 ad = new device
 dim desc as new bufferdescription
 desc.controlpan = true
 desc.controlvolume = true
 desc.controlfrequency = true
 desc.flags = bufferdescriptionflags.globalfocus '全局的,上一篇有介紹
 ad.setcooperativelevel(me.handle, cooperativelevel.normal)
 buf = new secondarybuffer("g:/media/wav/rod2.wav", desc, ad)
 buf.play(0, bufferplayflags.looping)
 label5.text = buf.frequency.tostring
 end sub
private sub form1_keydown(byval sender as object, byval e as system.windows.forms.keyeventargs) handles mybase.keydown
 buf.volume = 0 '最大就是0
 label2.text = buf.volume.tostring
 end sub
 private sub form1_keyup(byval sender as object, byval e as system.windows.forms.keyeventargs) handles mybase.keyup
 ' buf.volume = -50 * 100
 buf.volume = -5 * 100
 label2.text = buf.volume.tostring
 end sub
 private sub form1_mousedown(byval sender as object, byval e as system.windows.forms.mouseeventargs) handles mybase.mousedown
 if e.button = mousebuttons.left then
 buf.pan = -20 * 500
 else
 buf.pan = 20 * 500
 end if
 label4.text = buf.pan.tostring
 end sub
 private sub form1_mouseup(byval sender as object, byval e as system.windows.forms.mouseeventargs) handles mybase.mouseup
 buf.pan = 0
 label4.text = buf.pan.tostring
 end sub
======================================