2016-06-15 3 views

ответ

1

Я изучаю эту тему в течение нескольких дней и внес свои частичные результаты здесь.

  1. Существует встроенная библиотека, которая может использоваться для доступа к внешней UVC-камере https://github.com/ktossell/libuvc. Я обнаружил, что этот проект использовал его, и когда я скомпилировал и протестировал его, я нашел образцы только частично стабильными и исходный код, который он подавляет.
  2. 2-летняя версия Camera2 API, как представляется, включает в себя внешнюю поддержку камеры. Я нашел в Android project documentation - Camera device следующие инструкции:

    «Внешняя камера (например, USB-камера с горячей заменой). Обновления API указывают, что статическая информация камеры доступна только тогда, когда камера подключена и готова к использованию для внешнего горячего -пробки. Звонки на получение статической информации будут недействительными, если статус камеры не CAMERA_DEVICE_STATUS_PRESENT. Структура учитывает только обратные вызовы изменения статуса устройства для управления доступным списком внешних камер ».

Я еще не в состоянии писать код, используя Camera2 API, что доступ к веб-камеры.

Наконец, я даже нашел, что в Android source code следующий код

(144) // TODO: обновление CAMERA_FACING_EXTERNAL после того, как изменения HAL API объединяются.

Хотя CAMERA_FACING_EXTERNAL новое значение CameraInfo class для внешней камеры, которые, очевидно, не ФРОНТ, а не назад.

Надеюсь, это поможет вам перейти к полному ответу.

1

К сожалению, в то время как у API-камеры camera2 есть необходимые интерфейсы API для поддержки внешних камер, таких как веб-камеры USB, пока нет стандартной низкоуровневой поддержки внешних камер.

Некоторые производители отдельных устройств имеют такую ​​поддержку, но в настоящее время это очень небольшое количество устройств.

До тех пор единственным способом использования веб-камер USB для использования в приложениях Android является использование необработанных интерфейсов USB напрямую, а не использование API-интерфейсов камеры вообще. Вы можете либо попытаться найти существующую библиотеку UVC для использования, либо написать свой собственный.

2

Испытанный: https://github.com/saki4510t/UVCCamera

выше ссылка поставляется с 8 различными приложениями в мастер-приложении, реализация различных функций в каждом. Пройдите через приложения.

Используйте библиотеку libuvc для доступа к внешней камере.

0

Эта функция была реализована на некоторых платформах, перемещая каждую функцию в camera_device_ops_t на оборудовании функции USB_CAMERA, как показано ниже:

camera_device_ops_t usb_camera_camera_ops = { 
    set_preview_window:   usb_camera_set_preview_window, 
    set_callbacks:    usb_camera_set_CallBacks, 
    enable_msg_type:   usb_camera_enable_msg_type, 
    disable_msg_type:   usb_camera_disable_msg_type, 
    msg_type_enabled:   usb_camera_msg_type_enabled, 

    start_preview:    usb_camera_start_preview, 
    stop_preview:    usb_camera_stop_preview, 
    preview_enabled:   usb_camera_preview_enabled, 
    store_meta_data_in_buffers: usb_camera_store_meta_data_in_buffers, 

    start_recording:   usb_camera_start_recording, 
    stop_recording:    usb_camera_stop_recording, 
    recording_enabled:   usb_camera_recording_enabled, 
    release_recording_frame: usb_camera_release_recording_frame, 

    auto_focus:     usb_camera_auto_focus, 
    cancel_auto_focus:   usb_camera_cancel_auto_focus, 

    take_picture:    usb_camera_take_picture, 
    cancel_picture:    usb_camera_cancel_picture, 

    set_parameters:    usb_camera_set_parameters, 
    get_parameters:    usb_camera_get_parameters, 
    put_parameters:    usb_camera_put_parameters, 
    send_command:    usb_camera_send_command, 

    release:     usb_camera_release, 
    dump:      usb_camera_dump, 
}; 
Смежные вопросы