Как показать предварительный просмотр передней камеры на Framelayout с помощью Camera2 в Android?

Я работаю в одном приложении, в котором я использую tokbox для видеозвонков, но перед отображением экрана активного вызова мне нужно показать пользователю предварительный просмотр передней камеры. Используя tokbox publisher, мы не можем этого сделать, иначе видео дойдет до конечного пользователя до того, как вызов будет принят.

Итак, как мы можем показать предварительный просмотр видео с передней камеры (просто предварительный просмотр, мне не нужен захват или что-то еще) в макете кадра с использованием Camera2 API Android?


person Siraj Sumra    schedule 14.09.2017    source источник


Ответы (2)


Вы можете получить предварительный просмотр от издателя, позвонив по номеру Publisher.startPreview(). Это запустит камеру и поместит ее на Publisher.getView(), который вы можете поместить в свой пользовательский интерфейс.

Не забудьте сделать Publisher.destory(), если вы это сделаете. Сначала я этого не делал и заметил, что после сеансов TokBox на старых (не Camera2) устройствах камера не выпускается должным образом.

person Lance Johnson    schedule 21.12.2017
comment
Если вы выполните Publisher.startPreview(), он опубликует данные в сеансе. Я не хочу его публиковать. - person Siraj Sumra; 26.12.2017
comment
Возможно, вы путаете подключение к сеансу с публикацией своего потока. Простое подключение к сеансу не приводит к автоматической публикации потока при вызове publisher.startPreview(). Мое приложение добавляет SessionListener к сеансу. Когда происходит соединение, я создаю свой издатель и вызываю на нем startPreview(). Я не звоню session.publish(publisher). Я сделаю это позже, когда буду готов опубликовать поток в сеансе. - person Lance Johnson; 08.02.2018

Вы можете использовать экземпляр издателя и использовать его представление, а не публиковать в сеансе изначально.

person Jaideep Shah    schedule 14.09.2017
comment
Я пробовал только сначала, без публикации, он ничего не отобразит - person Siraj Sumra; 15.09.2017