Согласно документам камеры Android со стороны Java SDK, кадры предварительного просмотра камеры должны быть снабжены (видимой и активной )поверхностью для рисования, чтобы получить доступ к данным кадра. Я связал несколько вещей, с которыми я столкнулся здесь (Я новичок, поэтому я ограничен двумя гиперссылками ), но я просмотрел тонны документации по различным вещам, прежде чем опубликовать свой собственный вопрос здесь, на SO.
a )Я явно не хочу выводить предварительный просмотр с камеры на экран, мне просто нужны байтовые данные (, которые я могу получить отсюда )прямо из буфера камеры, если это возможно.
б )Да, я видел это: Съемка с камеры без предварительного просмотра .
Однако это диктует, что приложения, использующие эту библиотеку, должны вставлять это (кажущееся )произвольное представление в свой макет приложения, который должен быть виден все время, (они не могут переключать макеты,изменить видимость родительских контейнеров или использовать подактивность )в течение -жизненного цикла приложения.
На самом деле, мои потребности аналогичны этому плакату , за исключением того, что мне нужен непрерывный поток данных предварительного просмотра камеры в реальном -времени, а не снимок, сохраненный в виде изображения на диске. Поэтому PictureCallback
работает на него вместе с вызовом myCamera.takePicture
. По понятным причинам запись непрерывных захватов на диск для меня не решение, так что в моем случае это не сработает. myCamera.takePicture
также намного медленнее, чем получение кадров предварительного просмотра.
c )Я начал баловаться с NDK и получил довольно хорошее представление о нем. Однако, согласно , этот доступ к данным камеры через собственный интерфейс просто не поддерживается и не рекомендуется, и даже в этом случае возникают огромные проблемы с совместимостью устройств.
Если это устарело, и есть надежные маршруты NDK для получения данных камеры с устройств Android, я не смог их найти, поэтому, если бы вы могли указать мне на них, было бы здорово.
d )Я хочу сделать эту библиотеку доступной из таких инструментов, как Unity (в форме подключаемого модуля Unity ), для которого я хочу иметь возможность просто скомпилировать ее в JAR (или.so для native )и ожидать, что он будет работать с приложениями для Android, которые импортируют библиотеку таким образом, чтобы они могли использовать камеру без особых конфигураций пользовательского интерфейса/макета, необходимых от разработчика приложения.
Я хочу иметь возможность создать библиотеку обработки видения -для использования в приложениях для Android и не хочу ограничивать приложения, использующие библиотеку, чтобы использовать определенные макеты приложений и рисовать определенные представления на экране для использования результаты обработки зрения -для очень простого примера, если приложение хочет использовать мою библиотеку, чтобы получить средний цвет того, что видит камера, и хочет подкрасить изображение на экране в этот цвет.
Любые предложения, которые я могу дать по любому из пунктов, которые у меня есть, будут очень -полезными. Большое спасибо за ваше время!