如何枚举系统的视音频采集设备

本文介绍如何利用Directshow SDK封装的动态库来枚举Windows系统的视频和音频采集设备。提供了一个简单的接口EnumDevice,通过指定设备类型(视频或音频),可以获取设备名称列表。在使用前需调用COM库的初始化函数CoInitialize。
摘要由CSDN通过智能技术生成

    用Directshow SDK很容易实现该功能,但是开发者必须了解Directshow SDK的一些基础知识,对于不了解Directshow的开发员就有点头疼了。为了更方便他们开发,我封装了一个动态库,可以枚举系统的视音频采集设备(仅支持Windows系统),动态库使用非常简单,因为只有一个接口:

//枚举指定类型的所有采集设备的名称
ENUMDEVICE_API HRESULT EnumDevice(CAPTURE_DEVICE_TYPE type, char * deviceList[], int nListLen, int & iNumCapDevices);

其中,输入参数type是一个枚举类型,定义如下:

enum CAPTURE_DEVICE_TYPE
{
    DSHOW_VIDEO_DEVICE = 0,
    DSHOW_AUDIO_DEVICE,
};

如果要枚举视频采集设备,则传入0;如果枚举音频设备,则传入1。

使用有一个地方要注意:因为DShow需要用到COM,所以调用该接口前外部需要调用COM库的初始化函数:::CoInitialize(NULL);

调用的例子代码:  

 ::CoInitialize(NULL); //调用DirectShow SDK的API需要用到COM库


    int iVideoCapDevNum = 0;
    int iAudioCapDevNum = 0;

    char * DevicesArray[20];
    for(int i=0; i<20; i+&#
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值