Как получить список аудио / видео и устройств захвата в 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);
Другие вопросы по тегам