回 帖 发 新 帖 刷新版面

主题:介绍一个象千千静听一样显示音量波形的控件

介绍一个象千千静听一样显示声卡动态音量波形的控件

  压缩包内还有用此控件做的播放器VB源代码。
  这个控件能使你的音频播放器象千千一样显示漂亮的音量波形。一直以来,我自编的播放器都使用随机函数来模拟音量波形,但这个控件是获取的声卡实时数据。
  这不是我的原创,而是从网上下载的,我仅做了一些整理。
  Jiac.dll是音频解码器(支持格式:MOD、MP3、OGG、WMA、AIFF、MIDI、CD),最好复制到系统的SYSTEM32目录下,否则调试时可能会报错(但生成exe后就好了)。
  DSPShow.ocx是调用Jiac.dll的接口的控件(所以我们不得不用Jiac.dll),可输出动态音量波形数据。
  RM、RMVB和其它类型的文件,能播放但可能获取不到DSP 数据。
  以下是DSPShow.ocx控件的属性、方法、事件。

属性:
---------------------------------
BackColor:  长整型,背景颜色
DspColor:   长整型,波形颜色
PeakColor:  长整型,顶部小点颜色
BackPicture:字符型,背景图片全路径文件名(BackPicture = ""为清除背景图片)
Balance:    整型,声道音量平衡(-512L—0LR—512R)
DspStorm:   逻辑型,是否使用顶部小点
DspStyle:   整型,效果样式:0-自定义;1-柱形;2-半波形;3-全波形;4-圆圈;5-宽全波形
DspSpeed:   整型,效果显示速率(1—30)
GetState:   当前状态(0-停止;1-播放;2-暂停)
MusicPos:   长整型,当前播放进度位置(ms)
MusicLength:长整型,播放长度(ms)
volume:     长整型,音量(0-1024)


方法:
----------------------------------
Cls:         清除画面
FileOpen:    打开音乐文件
MusicPlay:   播放音乐
MusicPause:  暂停/播放(切换)
MusicStop:   停止
Refresh:     刷新
SetFrequency:音乐播放速率(1—44100—88200)
SetMusicPos: 设置当前播放位置


事件:
---------------------------------
Click
DblClick
MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
DspDataOut:DSP数据输出,用于自定义效果
  输出参数1:DrawSpectrumL()-单精度,左声道绘制范围,值域0-512
  输出参数2:DrawSpectrumR()-单精度,右声道绘制范围,值域0-512
  输出参数3:DrawOscilliscopeL()-单精度,左声道波形数据,值域0-256
  输出参数4:DrawOscilliscopeR()-单精度,右声道波形数据,值域0-256

回复列表 (共5个回复)

沙发

封闭 fmod 做的

板凳


非常不错哦~

3 楼

不错呀,谢谢啦

4 楼

good 只是在繁体环境的控件是 打开文件时是乱码..

5 楼

感谢分享,有个图就更好了

我来回复

您尚未登录,请登录后再回复。点此登录或注册