Android :Доступ к данным кадра предварительного просмотра аппаратной камеры без их рисования

Согласно документам камеры Android со стороны Java SDK, кадры предварительного просмотра камеры должны быть снабжены (видимой и активной )поверхностью для рисования, чтобы получить доступ к данным кадра. Я связал несколько вещей, с которыми я столкнулся здесь (Я новичок, поэтому я ограничен двумя гиперссылками ), но я просмотрел тонны документации по различным вещам, прежде чем опубликовать свой собственный вопрос здесь, на SO.

Мои проблемы:

a )Я явно не хочу выводить предварительный просмотр с камеры на экран, мне просто нужны байтовые данные (, которые я могу получить отсюда )прямо из буфера камеры, если это возможно.

б )Да, я видел это: Съемка с камеры без предварительного просмотра .

Однако это диктует, что приложения, использующие эту библиотеку, должны вставлять это (кажущееся )произвольное представление в свой макет приложения, который должен быть виден все время, (они не могут переключать макеты,изменить видимость родительских контейнеров или использовать подактивность )в течение -жизненного цикла приложения.

На самом деле, мои потребности аналогичны этому плакату , за исключением того, что мне нужен непрерывный поток данных предварительного просмотра камеры в реальном -времени, а не снимок, сохраненный в виде изображения на диске. Поэтому PictureCallbackработает на него вместе с вызовом myCamera.takePicture. По понятным причинам запись непрерывных захватов на диск для меня не решение, так что в моем случае это не сработает. myCamera.takePictureтакже намного медленнее, чем получение кадров предварительного просмотра.

c )Я начал баловаться с NDK и получил довольно хорошее представление о нем. Однако, согласно , этот доступ к данным камеры через собственный интерфейс просто не поддерживается и не рекомендуется, и даже в этом случае возникают огромные проблемы с совместимостью устройств.

Если это устарело, и есть надежные маршруты NDK для получения данных камеры с устройств Android, я не смог их найти, поэтому, если бы вы могли указать мне на них, было бы здорово.

d )Я хочу сделать эту библиотеку доступной из таких инструментов, как Unity (в форме подключаемого модуля Unity ), для которого я хочу иметь возможность просто скомпилировать ее в JAR (или.so для native )и ожидать, что он будет работать с приложениями для Android, которые импортируют библиотеку таким образом, чтобы они могли использовать камеру без особых конфигураций пользовательского интерфейса/макета, необходимых от разработчика приложения.

Контекст:

Я хочу иметь возможность создать библиотеку обработки видения -для использования в приложениях для Android и не хочу ограничивать приложения, использующие библиотеку, чтобы использовать определенные макеты приложений и рисовать определенные представления на экране для использования результаты обработки зрения -для очень простого примера, если приложение хочет использовать мою библиотеку, чтобы получить средний цвет того, что видит камера, и хочет подкрасить изображение на экране в этот цвет.

Любые предложения, которые я могу дать по любому из пунктов, которые у меня есть, будут очень -полезными. Большое спасибо за ваше время!

13
задан Community 23 May 2017 в 10:29
поделиться