在过去的两周里,我一直在到处寻找,甚至试图获得关于如何做到这一点的提示。这是我第一次询问,当我说我不喜欢寻求帮助时请相信我。
但我已经走到了尽头,我所能找到的只是如何在 C# 中使用别人的框架列出可用的音频和视频设备。我要做的就是列出从 C# 中连接到一台计算机的可用音频和视频设备,而无需任何额外的 3rd 方框架。
如果你们中的任何人对此有帮助,我将不胜感激。就像我说的那样,我已经走到尽头,试图弄清楚如何做到这一点。
谢谢!
试试 aForge.net http://www.aforgenet.com/ 这样做非常简单,或者如果对你来说足够的话,你可以使用他们现成的对话框。
在谷歌搜索“C#获取视频捕获设备”之后。我最终阅读了这两篇 CodeProject 文章:
您会看到其中涉及到很多 COM 互操作。从它的声音来看,我不确定你是否准备好直接投入其中,因为这可能是很多乏味的工作。我会考虑使用现有的东西,而不是重新发明轮子。毕竟,它们都属于公共领域。
此外,StackOverflow 上有这篇文章,其中有一些有趣的链接:
/// <summary>
/// The DirectSoundEnumerate function enumerates the DirectSound Odrivers installed in the system.
/// </summary>
/// <param name="lpDSEnumCallback">callback function</param>
/// <param name="lpContext">User context</param>
[DllImport("dsound.dll", EntryPoint = "DirectSoundEnumerateA", SetLastError = true, CharSet = CharSet.Unicode, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
static extern void DirectSoundEnumerate(DevicesEnumCallback lpDSEnumCallback, IntPtr lpContext);
/// <summary>
/// The DirectSoundEnumerate function enumerates the DirectSound Input drivers installed in the system.
/// </summary>
/// <param name="lpDSEnumCallback">callback function</param>
/// <param name="lpContext">User context</param>
[DllImport("dsound.dll", EntryPoint = "DirectSoundCaptureEnumerateA", SetLastError = true, CharSet = CharSet.Unicode, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
static extern void DirectSoundCaptureEnumerate(DevicesEnumCallback lpDSEnumCallback, IntPtr lpContext);