Работа с камерой в Windows Mobile
От: Diamondus  
Дата: 14.07.10 14:20
Оценка:
Всем здравствуйте,

Столкнулся с задачей. В приложении (нативное, C++) нужно делать кадры встроенной камерой с предпросмотром. Сразу же нашлось SHCameraCapture, которое возвращало E_ACCESSDENIED:
SHCAMERACAPTURE shcc ;
ZeroSizeOf(shcc) ;
shcc.cbSize        = sizeof(shcc);
shcc.hwndOwner        = m_hWnd ;
shcc.pszInitialDir    = L"\\My Documents";
shcc.pszDefaultFileName    = L"test1.jpg";
shcc.pszTitle        = L"Demo";
shcc.StillQuality    = CAMERACAPTURE_STILLQUALITY_DEFAULT ;
shcc.nResolutionWidth    = 240;
shcc.nResolutionHeight    = 320;
shcc.Mode        = CAMERACAPTURE_MODE_STILL ;
HRESULT hResult = ::SHCameraCapture(&shcc) ;


Потом нашлось CameraCapture, работающее через DirectShow, которое на этапе инициализации видеофильтра:
CHK( pPropertyBag->Load( &PropBag, &errLog ));

возвращало VFW_E_INVALID_FILE_VERSION и ничего в errLog не писало.

После этого нашелся флажок в реестре [Mobile Device\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Pictures\Camera\OEM] DisableCamera, который был установлен в 1. После сброса его в 0 SHCameraCapture стало возвращать VFW_E_INVALID_FILE_VERSION вместо E_ACCESSDENIED.

Приложение проверяется на КПК Acer F900 c WM 6.1, на нем же планируется и эксплуатация. Ради интереса проверил на других девайсах:
ASUS P550 — SHCameraCapture работает как надо
Glofiish X800 — SHCameraCapture работает после установки флажка в 0 и показывает неподвижный мусор типа помех в телевизоре, CameraCapture тоже фотографирует мусор (а родное камерное приложение работает нормально!).

Посему вопрос: есть ли у кого опыт работы с камерой и способы решения таких проблем? Я пока придумал только установить более новую прошивку на устройство, завтра буду пробовать. Раз уж там непонятно у какого файла инвалидная версия.

Заранее спасибо всем.
Windows Mobile camera
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.