c#中实现二块声卡同时工作,程序指定设备ID无效,急!

tybvip 2009-11-20 10:21:42
我有一个项目,要用到两块声卡,同时工作播放声音,用如下二种方法都不能实现,都是windows指定的好块声卡工作。请求帮助:
一:用MMControl控件
axMMControl1.Notify = false;
axMMControl1.Wait = true;
axMMControl1.Shareable = false;

axMMControl1.DeviceID = 1; //0或1
axMMControl1.DeviceType = "WAVEAUDIO";
axMMControl1.FileName = "c:\\Windoww.wav";
axMMControl1.Command = "open";
axMMControl1.Command = "play";

二:用winmms.dll

int b = WaveLib.WaveNative.waveOutGetID(); //得到的b值为11,在一块和二块电脑上的值是一样的。
WaveLib.WaveFormat fmt = new WaveLib.WaveFormat(44100, 16, 2);
m_Player = new WaveLib.WaveOutPlayer(0, fmt, 16384, 3, new WaveLib.BufferFillEventHandler(Filler)); //指定0和1一样无效,通过WaveNative.waveInGetNumDevs()得到的值是2,说明有读取到2块声卡信息
int c = WaveLib.WaveNative.waveInPrepareHeader(m_WaveOut,ref m_Header,3);
int d = WaveLib.WaveNative.waveOutWrite(m_WaveOut, ref m_Header, 3);
WaveLib.WaveNative.PlaySound("c:\\Windoww.wav", 0, 0);
...全文
88 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
tybvip 2009-11-21
  • 打赏
  • 举报
回复
我昨天晚上也开始研究DiiectSound ,但还没有弄好两块能同时工作
好像用applicationDevice = new Device(itemSelect.info.DriverGuid);切换无效。

第一次接触这块,不好弄。
饺子87 2009-11-21
  • 打赏
  • 举报
回复
用DiiectSound 的 SecondaryBuffer ,多个 SecondaryBuffer 可以混音。

ps:请问你对回音消除和噪音抑制有研究不?我这块没弄明白
微信小程序系统教程[初级阶段],微信小程序0基础学起,讲解微信小程序开发的基础知识。 微信小程序系统教程共有“微信小程序系统教程[初级阶段]”、“微信小程序系统教程[级阶段]——核心技术”、“微信小程序系统教程[阶段]客服消息+微信支付+九宝电商系统”。 “微信小程序系统教程[阶段]全套课程”包含: 1.微信小程序系统教程[阶段]_客服消息 2.微信小程序系统教程[阶段]_微信支付 3.微信小程序系统教程[阶段]_九宝电商系统 学习“微信小程序系统教程[阶段]”要求有微信小程序的基础。建议先学习“微信小程序系统教程[初级阶段]”、“微信小程序系统教程[级阶段]”,后在报名“微信小程序系统教程[阶段]”。 阶段讲解的客服消息,是针对小程序的。后台程序用接近底层的技术,没有使用三方技术。这样降低同学们学习成本。 微信支付,这部分课程很有难度,要求同学们认真听讲,有不会的技术问题可以请教老师。购买课程后请联系老师,提供单号,给你源程序。 九宝电商系统是一套十分适和学习、项目的课程。既可以系统的学习微信小程序相关知识,还可以修改后上线。 “微信小程序系统教程[级阶段]——核心技术”重点讲解微信小程序事件、组件、API 微信小程序系统教程[初级阶段],微信小程序0基础学起,讲解微信小程序开发的基础知识。 购买课程的同学,可赠送就九宝老师编写的《微信小程序开发宝典》。 购课请咨询qq2326321088

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧