我正在尝试使用DirectShow中的各种音频源,我的系统中有这些捕获设备,我认为这些设备很常见(由芯片组驱动程序提供):
Realtek HD音频线输入
Realtek HD音频立体声输入
Realtek HD音频Mic输入
它们看起来像捕获源,公开模拟输入和24位pcm输出,并且可以将输出连接到其他过滤器(渲染器等)。
但是,来自IMediaFilter::运行捕获过滤器的返回代码是ERROR_BAD_COMMAND,这说明不了多少。我尝试在我的程序和GraphStudioNext也没有透露任何额外的信息。
是否有可能使用这些来捕获和如何?
更新
例如,我用麦克风输入(实际上是连接和工作的)尝试了这个图。在这个设置中,图形不会启动(ERROR_BAD_COMMAND),但是对于另一个源,它将启动。
这是同一台设备,但驱动程序不同。一个工作是从类别“音频捕获源”,而不是“波分复用流捕获设备”。

发布于 2020-02-29 22:24:50
使用GraphStudioNext检查设备的最简单方法是构建一个录音图,其中包含PCM音频输入设备本身、AVI Mux过滤器和文件写入过滤器(默认媒体类型):

点击Run,记录图形就会通过筛选器在图形生成过程中提示的位置生成非空文件。
--
所以现在我意识到你的问题有点不同。您可以看到与您的音频输入设备相对应的过滤器。
CLSID_AudioInputDeviceCategoryAM_KSCATEGORY_CAPTURE问题是,第一个过滤器起作用,而另一个过滤器不工作。
来自AM_KSCATEGORY_CAPTURE的类似过滤器似乎连接到拓扑中,但试图运行触发ERROR_BAD_COMMAND。
首先,这些都是不同的过滤器。尽管底层硬件可能是相同的,但是“前端”过滤器是不同的。“工作”的包装是由波分复用设备支持的音频捕获滤波器。在另一种情况下,它是通用的WDM过滤器代理,一般情况下,它的行为是未定义的。过滤器没有文档化,我猜,它没有收到足够的初始化,或者没有实现所需的行为,所以这个代理不能也不应该与音频捕获过滤器代理互换。
https://stackoverflow.com/questions/60469559
复制相似问题