Delphi 多声卡开发

    最近想写一个程序,用于在一台电脑上控制多块声卡,分别放不同的音乐文件。一般的播放控件都没有在哪块声卡进行播放的选择功能。网上倒是见过OCX方式的多声卡SDK(开发包),但不注册的话只能控制两块,而且播放还不稳定,注册的话,费用要2K!倒,我是穷人也,欺负我么。
    只好自己动手了。
    查找多方面资料,知道用DirectX开发的话是可以实现的,但要用Delphi直接使用DirectX API进行开发的话也太麻烦了,好在有DelphiX(以Delphi控件的方式封装的DirectX)可用。
    下载最新的DelphiX后,用DXSound控件进行了开发,发现确实很简单(而且有例子可参考),但同时发现一个比较麻烦的问题,就是默认的只支持WAV,其它的格式不支持(至少我不知道)。
    再用Google进行一翻搜索后,找到另一个控件Advanced DSMIX(基于DelphiX),它支持的格式就多一些,我试过可以使用WAV,MP3,WMA,这下够了。
    好了,这下可以完成我的要求了,而且这个控件还可以显示实时波形图,爽。
 
下面结合代码说一下如何实现:
安装好DelphiX,Advanced DSMIX控件
报放cbDSMixer控件或创建一个(TcbDSMixer)
获取本机上可用声卡列表:
  for i:=0 to FDSM.DeviceCount-1 do
    CoB_Driver.Items.Add(FDSM.Devices[i]);
使用指定声卡
  FDSM.DeviceIndex:=FDriverNo;
如果要准备播放文件,需要一个TcbDSMixerChannel

    FDSAudio:=TcbDSMixerChannel.Create(FDSM);
需要注意的是:使用哪一块声卡进行播放在TcbDSMixerChannel.Create的时候就决定了,Create的参数是cbDSMixer,此时的DeviceIndex决定了cbDSMixerChannel使用哪块声卡进行播放。
开始播放:
    FDSAudio.FileName:=FileName;//设置播放文件
    FDSAudio.Play;//开始播放
 
就这么简单就搞定了!
 
 
 
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值