c # — захват камеры с помощью DirectShow

Я разрабатываю приложение SmartDevice (шаблон Pocket PC 2003) в C# для устройства с Windows Mobile 6.1. Мне нужно использовать камеру этого устройства (фото, видео); чтобы сделать эту работу, я попытался с помощью CameraCaptureDialog класс, но он не работает для приложений Pocket PC.
Итак, я задокументировал в интернете и обнаружил, что я, вероятно, ссылаюсь на DirectShow API, но проблема в том, что я не знаю, с чего начать, потому что я не могу найти работающий / правильный пример.

Мои вопросы:
Это правильный путь? Есть ли альтернативы?
Где я могу найти отлично пример, который показывает, как сделать эту работу?

2

Решение

Вы можете попробовать directshowbetcf: http://alexmogurenko.com/blog/directshownetcf/ если вы действительно хотите пойти с DirectShow и NetCF.

4

Другие решения

В сети есть множество примеров директ-шоу. Есть сайт, посвященный конвертации API в C #, что делает его намного проще, может быть, это было так http://directshownet.sourceforge.net/about.html. Я боролся с DirectShow, пока не прочитал книгу «Программирование DirectShow» из прессы Microsoft. Примерно треть этого пути в этой книге казалась невероятно легкой, и я смог выполнить то, что хотел. В конце концов, это очень похоже на обращение к любой библиотеке и использование классов из этой библиотеки. Дополнительная сложность заключается в том, что вам нужно добавить обертки, потому что все они являются COM-объектами, но это было сделано для вас.

1

Это может быть полезно для понимания технологии DirectShow. В основном дает начало DirctShow и объясняет некоторые важные моменты. Но его C ++ не C #. Надеюсь это поможет

Базовый захват видео

1

DirectShow является API захвата видео в Windows Mobile 6. Есть Фильтр видеозахвата там и в целом все разработано почти так же, как в Windows.

Проблема заключается в том, что это родной API, а не только в Windows Mobile. Для разработки на C # вам нужны некоторые привязки, а они отсутствуют. На настольном компьютере есть DirectShow.NET, который отсутствует, но кажется, что он не подходит для CE. Тем не менее, вам все еще нужно заполнить этот пробел в Windows Mobile.

Чтобы обойти это, у вас есть несколько способов, во-первых, нужно пройти через DirectShow.NET и соответствующим образом обновить его, чтобы начать работать на вашем устройстве, удалить части, отсутствующие в мобильной ОС и т. Д. Это даст вам двойника для DS.NET, но для мобильной операционной системы.

Другой вариант — сделать некоторые разработки на C ++ и реализовать минимально достаточный набор функций в этом домене, открывая компонент через COM. Затем вы будете ссылаться на это из управляемого кода, и все будет соединено вместе. И еще одним очевидным вариантом будет использование стороннего решения, которое уже делает одно из упомянутых выше.

1
По вопросам рекламы [email protected]