网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
在Delphi下用Direct Sound 实现混音器组件
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式
法来控制声音的播放、停止、频率、声道等特性。但要注意的是:因为Win95是多任务的,设备有可能被别的程序占用,所以IDirectSoundBuffer的功能调用可能会引发DSERR_BUFFERLOST错误。此时,如果要确保你的请求一定会得到响应,则必须调用IDirectSoundBuffer::Restore以重新获得设备。

  掌握了这些基本概念后,就可以在C++中编写Direct Sound的控制程序了,但Delphi无法直接存取上面提及的数据结构。为了解决这个问题,我们可以定义一个数组,分别代表不同的辅助缓冲区,Dephi通过该数组的索引来使用多个缓冲区。因此,我们的DLL中至少包括以下的接口函数:

  CreateDSoundInterface(HWND hwnd)//初始化

  LoadWave(int index, char *filename)//装入wav数据

  Play(int Index) //播放

  Stop(int Index)//停止

  Clear(int Index)//释放缓冲区

  当然,还可以加入其它控制,例如对频率、声道等的控制。

  有了动态链接库后,在Delphi中编写混音器组件的方法就比较简单了,与其它组件基本上没什么区别。

  首先,新建一个组件(New Component),设定其祖先类型为TComponent。然后,编写相应的方法初始化设备,实现DLL中提供的功能。这里只作两点说明:

  1、不要在继承的Create函数中加载DLL和初始化设备。不在构造方法中初始化设备是明智的做法,因为这样做较安全。

  2、因为DLL是用C编写的,所以接口函数说明必须是C的调用标准,例如可以像下面这个样子:

  Var

   DllFunction :

  function(Parametre : ParaType) : RusultType; cdecl;

  

  LibraryHandle=LoadLibrary(''DllFile.dll'');

  

  @DllFunction:=GetProcAddress(LibHandle,''DllFunction_Name'');

  组件单元编好以后,可通过选择Component|Install Component菜单来将组件装入Delphi的组件库即可使用它。

  本文所介绍的程序在Visual C++ 4.2、Delphi 3.0、Direct X 5.0 SDK下通过,但程序功能只需VC 2.0、 Delphi 2.0、 Direct X 2.0(Visual C 4.0内置Direct X 2.0 SDK)支持即可。若要确保程序能够正常运行,则必须在Win95下安装Direct X,并将DLL文件放到\Windows\System目录下。

  • 上一篇资讯: Delphi控制Excel2000心得
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号