HoloLens — съемка фотографий, когда определяемая камера находится в режиме VideoMode (потоковая передача)

Я пытаюсь создать приложение HoloLens, которое использует встроенную веб-камеру для съемки фотографий и отправляет их в интерфейс отдыха для дальнейшего распознавания лиц. Это работает хорошо до сих пор. Чтобы снимать фотографии с веб-камеры, она должна находиться в PhotoMode.

Проблема: если я хочу представить свое приложение в прямом эфире, веб-камера автоматически устанавливается в VideoMode, и захват фотографий невозможен. Описание локализуемой камеры https://developer.microsoft.com/en-us/windows/mixed-reality/locatable_camera_in_unity говорит:

«Единовременно с камерой может выполняться только одна операция».

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

Есть ли у кого-нибудь общее представление о том, как решить эту проблему, или, может быть, какой-то хак для доступа к веб-камере в PhotoMode одновременно с потоковой передачей?

Спасибо заранее!


person Dimitri    schedule 29.05.2017    source источник
comment
Соответствующий вопрос на форуме HoloLens: forums.hololens.com/discussion/7574/   -  person Dimitri    schedule 29.05.2017
comment
Я сомневаюсь, что вы можете делать то, что хотите именно из-за аппаратного обеспечения. Извините за упрощенное решение, но не могли бы вы просто передать какое-то пустое изображение при выключении режима видео, сделать фотографию в режиме фото, а затем возобновить потоковую передачу в режиме видео?   -  person RCYR    schedule 29.05.2017
comment
Я могу попробовать, но не разорвет ли это мое потоковое соединение, если я ему буду мешать? И, честно говоря, я совершенно не знаю, как передать какое-то пустое изображение из кода в HoloLens...   -  person Dimitri    schedule 29.05.2017
comment
Хм, я думал, ты закодировал свой собственный видеопоток. Тогда мое решение недействительно.   -  person RCYR    schedule 29.05.2017
comment
Спасибо, в любом случае...   -  person Dimitri    schedule 30.05.2017


Ответы (1)


Это возможно, если вы можете работать с кадрами предварительного просмотра из потоков MediaCapture. Просто запустите захват видео (при необходимости наложите слой на голограммы), а затем используйте PreviewFrames в качестве своих «фотографий». Это, конечно, ограничивает вас разрешением потока камеры.

Мне удалось заставить этот плагин работать с HoloLens. Пришлось использовать .Net вместо IL2CPP, и я использовал 2017.4.22f1. По крайней мере, код показывает, как использовать MediaCapture и PreviewFrames для получения видеопотока с камеры, для которого вы можете захватить текущий кадр и сохранить его как фотографию. Образец не делает этого последнего бита, но байты для кадров передаются, просто нужно сделать их доступными для ваших нужд. знак равно

https://github.com/VulcanTechnologies/HoloLensCameraStream

person Josh Wittner    schedule 16.04.2019