Как стать автором
Обновить

Silverlight 4: Легкий обзор по работе с веб-камерой

Время на прочтение1 мин
Количество просмотров1.2K
Автор оригинала: Corey Schuman
Поддержка веб-камеры была самой предвкушаемым нововведением и не стала ни для кого новостью. Относительно просто активировать данную функцию. Ниже приведенный пример демонстрирует простой UI с кодом, который подключает веб-камеру. Данный пост не затрагивает работу с несколькими веб-камерами, тем не менее, вызывая CaptureDeviceConfiguration.GetAvailableVideoCaptureDevices, вы получаете список всех доступных веб-камер.

Для начала, создадим простой UI (Rectangle и Button).

image

Добавим событие нажатия кнопки. Логика выглядит примерно так:
  • Получить обработчик вашего устройства видео захвата, используя CaptureDeviceConfiguration.
  • Запросить доступ к устройству CaptureDeviceConfiguration.RequestDeviceAccess().
  • Если пользователь подтвердил доступ, создать объект CaptureSource и далее установить VideoCaptureDevice выбранной веб-камере.
  • Создать VideoBrush.
  • Установить источник видео кисти (VideoBrush).
  • Запустить веб-камеру.
  • Нарисовать Rectangle (можно использовать любые объекты, которые принимают кисти (Brush))
image

Следующий шаг — запускаем приложение. Вы увидите пустой экран с кнопкой, после нажатия на которую, откроется окна запроса для разрешения программе пользоваться веб-камерой и микрофоном. Конечно же нажмите «Да» ;).

image

Вуаля!.. Теперь вы смотрите на себя, а может и на стенку или потолок.

image

После запуска приложения, я заметил отзеркаливание, что бы приложение показывало изображение, как зеркало, установите Flip Rectangl'a по X акцизе. Вот как выглядит это меню в Blend:

image
Теги:
Хабы:
Всего голосов 18: ↑11 и ↓7+4
Комментарии9

Публикации

Истории

Ближайшие события

Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
OTUS CONF: GameDev
Дата30 мая
Время19:00 – 20:30
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область