как повернуть текстуру, чтобы показать камеру.

Я использую API camera2, чтобы показать предварительный просмотр камеры, и я блокирую ориентацию экрана в lanscape, моя проблема в том, что я хочу повернуть вид текстуры, чтобы отобразить правильный предварительный просмотр камеры, когда я поворачиваю его с помощью метода setRotation, он становится меньше. Я ищу в стеке, но все решения относятся к камере (первый API), поэтому есть ли решение для поворота текстуры.


person ahakkal    schedule 27.07.2015    source источник


Ответы (1)


Вы можете добавить вращение к матрице TextureView. Например, см. Grafika "воспроизведение фильма", которое отправляет выходные данные декодера видео в TextureView. (те же основные принципы, что и для предварительного просмотра камеры).

Если вы посмотрите на adjustAspectRatio() вы можете видеть, как он регулирует положение (перевод) и масштаб вывода в соответствии с соотношением сторон видео. Также есть закомментированный вызов postRotate(), который поворачивает вывод на 10 градусов.

Обратите внимание, что это вращает видеокадр в представлении, а не в самом представлении.

person fadden    schedule 27.07.2015
comment
я сделал, как вы сказали, добавив новую функцию, такую ​​​​же, как ваша, я добавил эту строку, чтобы повернуть текстуру, как вы сказали: myMatrix.postRotate (90), но текстура исчезла, и в журнале информации у меня было это сообщение: получены только прямоугольники измерения с весом 0 - person ahakkal; 28.07.2015
comment
я вызываю этот метод из доступного метода onsurface, поскольку я блокирую ориентацию экрана. - person ahakkal; 28.07.2015
comment
Начните с меньшего вращения. В зависимости от того, как настроена ваша матрица, вы можете полностью вывести ее из вида. - person fadden; 28.07.2015