网站首页 工具软件 操作系统 办公软件 网页制作 PHP教程 script脚本专栏 photoshop教程 其他精品教程
我发布的文章 - 教程搜索 - 交流论坛 - 帮助中心 - 网站首页 网络工具 - 常用工具 - 媒体工具 - 系统工具 - 实用工具 NT/2003 - Win Xp - Win2000 - DOS/Win9x - IE/注册表 - Linux - 苹 果 Office - Word - Excel - PowerPoint - 输入法 - 邮件处理 Flash - Dreamweaver - Fireworks - FrontPage - HTMLCSS 基础文章 - PHP函数 - PHP技巧 - 数据库相关 - 高级应用 - PHP安装 - 转载精华 - 常见问题 综 合 类 - 状 态 栏 - 游 戏 类 - 页面背景 - 页面特效 - 页面导航 - 文本操作 - 文本特效 - 图形特效 - 鼠标特效 - 时间日期 - 密 码 类 文字特效 - 按钮与图标 - 色彩运用 - 滤镜魔法 - 综合实例 XML教程 - DELPHI基础教程 - VB教程
首页 -> 其他精品教程 -> VB教程

TOP

用vb开发directsuond程序
文章内容
相关信息
用户评论
文章内容


大家都知道directsound是directx中的一个部份。它的主要功能是用来播放声音。其实用vb来开发播放声音的程序有很多种方法。但是和directsound相比,这些方法都缺少灵活性。而正是由于这些灵活性,使directsound的编程具有一定的难度。虽然微软给了许多的程序代码实例,但是本人在看这些例子的时,发现这些程序并不适合初学者。因为在这些程序里,有许多的错误处理程序和调试代码。这样给初学者增加了很大的学习难度。正是由于上面愿因,本人编写了一个简单的基础入门代码,帮助初学者快速入门,并以此为基础进行更高层次的学习。

程序说明


在本程序中我们添加两个命令按纽和一个打开文件对话框。第一个按钮用来播放声音,第二命令按钮用来打开文件对话框,选择要播放的声音文件。对于directsound的初始化,在formload里完成。

要使用directsound首先要安装directx的sdk的sdk包(里面有大量的例子程序和帮助,我只发现在序例号为q99jq-hvjyx-68gm3-wxt68的win98的安装盘中有sdk包)或带有dx7类库的游戏(指有些游戏带有‘安装dirhct7.0’选项)。在vb的菜单[工程]---》(引用...)弹出引用对话框中选中’directx7 for visualbase type lidrary‘。

代码入下:

dim m_dx as new directx7’声明dlrect x7对象
  dim dufferdesc as dsbufferdesc’声明缓冲结构
   dim waveformat as waveformatex’声明文件格式
   dim m_dsduffer(100) as directsoundbuffer’声明缓冲对象
   dim k as string 
   dim m_ds as directsound ’声明directsound对象
   private sud commandl click()
   set m_dsduffer(100)=m ds createsoundbufferfromfile(k,dufferdesc,
   waveformat)’装入文件到缓冲中。m dsduffer(100)表示缓冲的大小。
   m_dsduffer(100),play flag’播放
   end sub 
   prlvate sub command2_click()
   commondialog1 showopen 
   k=commondialog1 filename
   end sub
   private sub form_load()
   set m_ds=m_dx direetsoundcreata("")’direetsound
   使用的硬件括号为空表示是用默认的硬件
       m_ds.setcooberativelevr1,me.hwnd,dsscl_prlorlty’定义协作层
       ’定义缓冲参数
       bufferdesc lflags = dsbcaps_ctrlfrequency or dsbcaps_ctrlpan
   or dsbcaps_ctrlvolume or dsb_caps_statlc
       ’********************************************************(
       ’定义文件对象的参数
       waveformat nformattag = waveformat pcm
       waveformat nchannels = 2
       waveformat lsamplespersec = 22050 
       waveformat nbitspersample = 16 
       waveformat nblockalign =waveformat.nbitspersample/8* waveformmat.nchannels 
       waveformat lavgbytespersec =waveformat.lsamplespersec * waveformat.nblockalign
’*****************)
       end sub


此程序要注意的地方:如你的声卡正被一些使用directsound的技术软件所使用,那么,初使化会失败。因为我是用directsoundcreate方法创建dlrect-sound对象的,此方法表示使用默认的声卡并以独占的方发使用。反之,此程序运行时,其他使用dlrectsound技术的软件也不可以运行,如超级解霸2001。此外,此程序只可以播放wav的声音文件。(不要问为什么,这是规定。)这就是为什么很多游戏安装完后会带有很多的wav声音文件的原因。但好象听说8.0版可以播放更多的声音文件。各位可以在8.0的机器上试一下本程序。如果8.0上运行有问题请在vb的菜单[工程]---》[引用.....]弹出引用对话框中选中”dlrectx8 for vlsual base type li-brary”然后使用vb中的对象浏览器查看看8.0与7.0的差别,在第一个下拉框中选出dxvbllba他是8.0的类库名,7.0是dxvbllb.把代码中使用的7.0的对象,方法等改成8.0的对象,方法等如本程序的dimm dx as new directx7改成dim m dx as new directx7改成dimm dx as new directx8。依次类推。7.0以下不可以运行本程序,因为7.0以下不支持vb的开发,只支持c系列语言的开发。

本程序未在8.0中测试,希望读者可以告诉我在8.0中的运行效果。


相关信息
用vb开发directsuond程序
发布者:mmcbbs
浏览量:288
发布日期:2005-04-10 10:27:51
所属专题:
用户评论
称  呼:
内  容:

广告位

广告招租,欢迎抢订

热门信息

·什么是ODBC
·初识WTL(上)
·理解ActiveX控件的一些背景..
·VB.NET 的新特点:变..
·探讨VB.Net中的数据绑定
·用VB.NET打造NameSpace
·VB.NET中的面向对象编程特征
·用VB和MTS开发多层数据库应..

推荐信息