社区
硬件/系统
帖子详情
怎样编程设置声卡的首选设备
xiaoqiqixiao
2004-03-25 09:08:41
我有2块声卡,可以在控制面板中选择一块作为首选设备,但我不想手工设置,怎样编程选择?
...全文
71
3
打赏
收藏
怎样编程设置声卡的首选设备
我有2块声卡,可以在控制面板中选择一块作为首选设备,但我不想手工设置,怎样编程选择?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
shadowWind
2004-08-03
打赏
举报
回复
mark
xiaoqiqixiao
2004-03-25
打赏
举报
回复
这,这,这,呵呵,首先感谢支持
只是我要的不是枚举设备啊,我要的是如何设置首选设备啊,枚举设备我直接用
waveOutGetNumDevs,然后一个个用waveOutGetDevCaps来获得设备属性就可以了
至于这个IAMAudioInputMixer,好象是用来设备左右声道,音调之类的东东吧
呵呵,两次表示感谢
smallbugworm
2004-03-25
打赏
举报
回复
通过枚举 ICreateDevEnum *pSysDevEnum = NULL;
IEnumMoniker *pEnumCat = NULL;
IMoniker *pMoniker = NULL;
int iIndex = 0;
ULONG cFetched;
// Instantiate the system device enumerator if it doesn't exist
if (pSysDevEnum == NULL)
{
hr = CoCreateInstance(CLSID_SystemDeviceEnum, NULL,
CLSCTX_INPROC, IID_ICreateDevEnum,
(void **)&pSysDevEnum);
if (FAILED(hr))
return 0;
}
// Enumerate all filters of the selected category
hr = pSysDevEnum->CreateClassEnumerator(CLSID_AudioInputDeviceCategory, &pEnumCat, 0);
if (SUCCEEDED(hr))
{
// Enumerate all filters using the category enumerator
// hr = EnumFiltersAndMonikersToList(pEnumCat, List);
if(pEnumCat != NULL)
{
pEnumCat->Reset();
while(hr = pEnumCat->Next(1, &pMoniker, &cFetched), hr==S_OK)
{
IPropertyBag *pBag;
hr = pMoniker->BindToStorage(0, 0, IID_IPropertyBag, (void **)&pBag);
if(SUCCEEDED(hr))
{
VARIANT var;
var.vt = VT_BSTR;
hr = pBag->Read(L"FriendlyName", &var, NULL);
if(hr == NOERROR)
{
char achName[MAX_PATH];
WideCharToMultiByte(CP_ACP, 0, var.bstrVal, -1, achName, MAX_PATH,
NULL, NULL);
strcpy(m_szAudioName [iIndex],achName);
SysFreeString(var.bstrVal);
// ASSERT(m_cap.rgpmAudioMenu[iIndex] == 0);
m_rgpmAudio[iIndex] = pMoniker;
pMoniker->AddRef();
}
SAFE_RELEASE(pBag);
}
pMoniker->Release();
iIndex++;
}
}
SAFE_RELEASE(pEnumCat);
}
m_nDeviceNum = iIndex;
SAFE_RELEASE(pSysDevEnum);
return m_nDeviceNum;这是枚举设备的代码
然后通过IAMAudioInputMixer这个接口进行设置,对这个接口的说明请参考DX SDK
计算机应用技术(实用手册)
计算机应用技术 ... 这个选项开启或关闭集成
声卡
设备
。有时候在系统的任务栏你见不到小喇叭有可能在这里被关闭了,即:[DISABLED],遇到这种情况可从新进入COMS把此项打开即可,即:[ENABLED]。 SATA...
声卡
声卡
的基本功能是把来自话筒、磁带、光盘的原始声音信号加以转换,输出到耳机、扬声器、扩音机、录音机等声响
设备
,或通过音乐
设备
数字接口(MIDI)使乐器发出美妙的声音。基本功能
声卡
是计算机进行声音处理的适配器。...
混音器
编程
接口讨论
为了理解混音器API是如何工作的,必须先了解典型的
声卡
的硬件布局。 我们有必要想象一下,
声卡
上有各种独立的,清楚的,但是却又互相连接的元件。 先看一种典型的,最基本的
声卡
。首先,如果
声卡
有数字音频录音功能...
Linux 系统
编程
从入门到进阶 学习指南
无论你是打算构建高性能服务器还是开发嵌入式
设备
,掌握 Linux 系统
编程
是 C 和 C++ 开发者的基本技能。 本文旨在为初学者提供一个清晰的 Linux 系统
编程
入门指南,带你步入 Linux 系统
编程
的世界,从基本概念到实用...
linux
设备
驱动作用
设备
驱动程序就像一个个的“黑盒子”,使某个特定硬件响应一个定义良好的内部
编程
接口,这些操作完全隐藏了
设备
的工作细节。用户的操作通过一组标准化的调用执行,而这些调用独立于特定的驱动程序。将这些调用映射...
硬件/系统
2,640
社区成员
17,239
社区内容
发帖
与我相关
我的任务
硬件/系统
VC/MFC 硬件/系统
复制链接
扫一扫
分享
社区描述
VC/MFC 硬件/系统
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章