微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

vb.net2008 Direct编程三音乐播放器——第二部分

Private Sub Form1_Load(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles MyBase.Load

Dim Enb_DS As New BufferDescription

Enb_DS.ControlVolume = True

Enb_DS.ControlPan = True

dev.SetCooperativeLevel(Me,CooperativeLevel.normal)

End Sub

接着我们写播放事件,我也不多说废话了,不会的请看上一节。但在此一定要注意一个地方,就是在播放前先要吧sb实例化,而且播放时要把“播放”按钮的enabled改为false,预防重复,“停止”按钮enabled改为true,否则就停止不了啦,具体代码看这里:

sb = New SecondaryBuffer(TextBox1.Text,dev)

sb.Play(0,BufferPlayFlags.Looping)

Button1.Enabled = False

Button2.Enabled = True

写完了播放代码,接下来就是停止了,(问:“停止”代码怎么写?答:“超级简单!”),不是我忽悠你,如果过你“停止”学不会的话,你的“师傅”我立马跳楼……废话不多说,就一句代码

sb.Stop()

简单吧,千万别忘了改变“播放”,“停止”按钮的enable属性哦~。具体代码请看这里:

sb.Stop()

Button1.Enabled = True

Button2.Enabled = False

写完了停止了,接下来要写“高难度”代码了(哭:“我好怕哦!”师傅:从东方明珠上掉下来ing)就两句代码,信不信由你喽~先看调节声音的代码,在direct的sound中有一个方法“Volume”通过它可以直接调整音量大小,不过它的值比较怪——最小声音是-5000,最大声音是0,所以我一开始要求你把trackbar的minimum设为-5000;maximum的值设为0,具体本功能的实现代码look下面:

sb.Volume = TrackBar1.Value

再来看声道,也是一句代码,只需要改变sb的pan这个值就可以了,这个值的精确度可是非常非常非常高的,全左声道是-10000,全右声道是10000,相差两万,十分精确,设好了trackbar的值,我们开始写代码喽~具体代码下面见:

sb.Pan = TrackBar2.Value

好了,到了发全代码的时间了,你在这一步之前成功了么?

Imports Microsoft.DirectX.DirectSound

Public Class Form1

Dim dev As New Device

Dim sb As SecondaryBuffer

Private Sub Form1_Load(ByVal sender As System.Object,CooperativeLevel.normal)

End Sub

Private Sub Button1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button1.Click

sb = New SecondaryBuffer(TextBox1.Text,BufferPlayFlags.Looping)

Button1.Enabled = False

Button2.Enabled = True

End Sub

Private Sub TrackBar1_Scroll(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles TrackBar1.Scroll

sb.Volume = TrackBar1.Value

End Sub

Private Sub TrackBar2_Scroll(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles TrackBar2.Scroll

sb.Pan = TrackBar2.Value

End Sub

Private Sub Button2_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button2.Click

sb.Stop()

Button1.Enabled = True

Button2.Enabled = False

End Sub

End Class

尽情发挥你的想象力,让这个程序更加完善吧,本节的错误和疑问下边的回复中见~886

转自《 http://hi.baidu.com/752664788/blog/item/2051393587a1a5325bb5f5a5.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐