Вопрос управления камерой PocketPC - PullRequest
4 голосов
/ 13 июля 2010

Каков наилучший способ поддержки устройств WindowsMobile5 (и более поздних версий) при сохранении совместимости кода с PocketPC 2003, написанным на C #?У нас есть довольно большое приложение, используемое кучей разных клиентов, примерно поровну распределенное между людьми с реальными устройствами PPC2003 и остальными новее WinMobile5 или новее - то есть мы должны продолжать поддерживать старые устройства довольно долгоеще.Теперь мне нужно добавить элемент управления камерой в приложение, по крайней мере для тех устройств, на которых есть камера, чтобы они могли делать снимки и прикреплять их к другим данным, которые в конечном итоге отправляются на веб-службу для обработки.

До сих пор мои исследования показали наличие класса CameraCaptureDialog в dll Microsoft.WindowsMobile.Forms, но я не могу добавить эту ссылку на приложение PocketPC 2003.Босс не слишком заинтересован в разделении приложения на отдельные проекты PPC2003 и WinMobile.Есть ли способ загрузить эту dll динамически и использовать CameraCaptureDialog таким образом?Какой-то другой вариант?

1 Ответ

2 голосов
/ 13 июля 2010

Единственный способ получить доступ к камере из приложения .NetCF PocketPC 2003 - это P / Invoking C / C ++ DLL.Есть пример приложения для этого, где-то плавающего вокруг Intertubes (я поищу его - я не могу вспомнить детали, но я думаю, что код C обращается к камере через DirectShow), но с ним довольно сложно работать и, вероятно, победил »делать именно то, что вам нужно.С другой стороны, если вы можете понять, как это сделать, он будет работать как для PocketPC 2003, так и для Windows Mobile 5 (т.е. функциональное приложение PPC2003 будет также работать на устройстве WinMo5).

CameraCaptureDialogпочти бесполезно, так что вы не теряете много там.В идеале, программисту нужно, чтобы интерфейс камеры управлялся программно (т. Е. Устанавливал разрешение, переключался с камеры на видео, делал снимок и т. Д.), Но на самом деле он не позволяет вам делать ничего, кроме открытия устройства.встроенный интерфейс.

Обновление: Вот пример приложения, о котором я упоминал:

http://blogs.msdn.com/b/marcpe/archive/2006/03/03/542941.aspx

И я ошибочно вспомнил: этот образец будет не работает в PocketPC 2003 (только в Windows Mobile 5 и выше).Я не знаю способа доступа к камере устройства в PocketPC 2003. По крайней мере, независимый от устройства и / или производителя способ доступа к камере не существует.На некоторых устройствах (например, HP iPaq) производитель предоставляет функции камеры через уже имеющуюся на устройстве DLL-библиотеку (доступ к которой можно получить через P / Invoke).

Если вам нужна интеграция с камерой, устройство имеетработать под управлением Windows Mobile 5 (или новее).Некоторые устройства могут быть обновлены до более новой версии ОС, но я определенно должен подвергнуть сомнению этот шаг.Лучше перейти на более современное устройство (например, на Droid).

...