国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

學習筆記,VB.NET使用DirectSound9 (2)

2024-07-10 13:04:29
字體:
來源:轉載
供稿:網友
,歡迎訪問網頁設計愛好者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
======================================


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 瓮安县| 白城市| 股票| 高阳县| 锡林浩特市| 方正县| 临漳县| 宣恩县| 噶尔县| 济宁市| 绥阳县| 五原县| 安平县| 罗定市| 鱼台县| 固安县| 广元市| 博白县| 化德县| 潼南县| 齐齐哈尔市| 文昌市| 北票市| 浦北县| 贡嘎县| 都江堰市| 合川市| 通州区| 霍邱县| 辉县市| 京山县| 宝山区| 陕西省| 舞阳县| 牡丹江市| 吴桥县| 朝阳县| 梅州市| 嘉义县| 宁海县| 安吉县|