Как получить список аудио / видео и устройств захвата в C#?
Я провел последние две недели в поисках повсюду, пытаясь получить даже подсказку о том, как это сделать. Я впервые спрашиваю об этом и доверяю мне, когда говорю, что не люблю просить о помощи.
Но я нахожусь в конце своей веревки, все, что я могу найти, это как перечислить доступные аудио и видео устройства, используя чужую среду в C#. Все, что я хочу сделать, это перечислить доступные аудио и видео устройства, подключенные к одному компьютеру из C# без каких-либо дополнительных сторонних фреймворков.
Если бы кто-нибудь из вас мог помочь с этим, я был бы очень признателен. Как я уже сказал, я в конце своей веревки пытаюсь понять, как это сделать.
Спасибо!
3 ответа
После Googling для "C# get устройства захвата видео". Я попал в эти две статьи CodeProject:
Вы увидите, что задействовано много COM-взаимодействий. И, судя по всему, я не уверен, что вы готовы начать с этого, у него может быть много утомительной работы. Я бы подумал использовать то, что есть, а не изобретать велосипед. Ведь они оба в свободном доступе.
Кроме того, в Stackru есть этот пост, на котором есть несколько интересных ссылок:
Попробуйте aForge.net http://www.aforgenet.com/ это довольно просто сделать именно так, или вы можете использовать их готовый диалог, если вам этого достаточно.
/// <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);