Я разрабатываю приложение SmartDevice (шаблон Pocket PC 2003) в C#
для устройства с Windows Mobile 6.1. Мне нужно использовать камеру этого устройства (фото, видео); чтобы сделать эту работу, я попытался с помощью CameraCaptureDialog
класс, но он не работает для приложений Pocket PC.
Итак, я задокументировал в интернете и обнаружил, что я, вероятно, ссылаюсь на DirectShow API, но проблема в том, что я не знаю, с чего начать, потому что я не могу найти работающий / правильный пример.
Мои вопросы:
Это правильный путь? Есть ли альтернативы?
Где я могу найти отлично пример, который показывает, как сделать эту работу?
Вы можете попробовать directshowbetcf: http://alexmogurenko.com/blog/directshownetcf/ если вы действительно хотите пойти с DirectShow и NetCF.
В сети есть множество примеров директ-шоу. Есть сайт, посвященный конвертации API в C #, что делает его намного проще, может быть, это было так http://directshownet.sourceforge.net/about.html. Я боролся с DirectShow, пока не прочитал книгу «Программирование DirectShow» из прессы Microsoft. Примерно треть этого пути в этой книге казалась невероятно легкой, и я смог выполнить то, что хотел. В конце концов, это очень похоже на обращение к любой библиотеке и использование классов из этой библиотеки. Дополнительная сложность заключается в том, что вам нужно добавить обертки, потому что все они являются COM-объектами, но это было сделано для вас.
Это может быть полезно для понимания технологии DirectShow. В основном дает начало DirctShow и объясняет некоторые важные моменты. Но его C ++ не C #. Надеюсь это поможет
DirectShow является API захвата видео в Windows Mobile 6. Есть Фильтр видеозахвата там и в целом все разработано почти так же, как в Windows.
Проблема заключается в том, что это родной API, а не только в Windows Mobile. Для разработки на C # вам нужны некоторые привязки, а они отсутствуют. На настольном компьютере есть DirectShow.NET, который отсутствует, но кажется, что он не подходит для CE. Тем не менее, вам все еще нужно заполнить этот пробел в Windows Mobile.
Чтобы обойти это, у вас есть несколько способов, во-первых, нужно пройти через DirectShow.NET и соответствующим образом обновить его, чтобы начать работать на вашем устройстве, удалить части, отсутствующие в мобильной ОС и т. Д. Это даст вам двойника для DS.NET, но для мобильной операционной системы.
Другой вариант — сделать некоторые разработки на C ++ и реализовать минимально достаточный набор функций в этом домене, открывая компонент через COM. Затем вы будете ссылаться на это из управляемого кода, и все будет соединено вместе. И еще одним очевидным вариантом будет использование стороннего решения, которое уже делает одно из упомянутых выше.