Вращение фактического видеобуфера в Videoview - PullRequest
7 голосов
/ 30 ноября 2011

В настоящее время я разрабатываю приложение специально для устройств GoogleTV на Android, где использование или принудительная ориентация приложения на что-либо, кроме ландшафта, не включено и не будет включено в будущем из того, что я понял, в действительности приложение просто падает при попытке запустить setRequestedOrientation();

Видеонаблюдения наследуют позиционные свойства от обычных представлений, таких как SetX, SetY, а именно SetRotation.

Вы можете установить вращение видеовидения на 90 градусов, но фактический видеобуфер НЕ будет вращаться. Я перепробовал все: от использования старого медиаплеера> surfaceview.getHolder().lockcanvas().rotate(degrees) всеми возможными способами до перезаписи onDraw метода пользовательского видео-просмотра, расширяющего обычный класс, ни один из которых я не смог бы успешно выполнить.

В двух словах, как я могу вращать ФАКТИЧЕСКОЕ видео в пределах видео, без изменения ориентации устройства? если у вас есть рабочий пример повернутого видео-просмотра с повернутым содержимым, пожалуйста, объясните, как у вас это работает.

Заранее спасибо.

Я хотел бы, чтобы вы заметили, что мы разрабатываем для Android 3.1, а также, что все, что до сих пор было закодировано динамически, все изображения и видеоизображения создаются с помощью кода, только определенные макеты, которые мы используем для элементов индексации Z, имеют определено в файле layout.xml.

1 Ответ

1 голос
/ 11 мая 2013

VideoView не поддерживает вращение видео, даже если матрица композиции установлена ​​правильно и используется атрибут вращения.

Что вы можете сделать, это использовать TextureView и установить его атрибут вращение = "90" (например),Затем он будет вращать кадры, но соотношение сторон - это то, что вам нужно для себя.Для этого вы можете использовать textTureView.setScaleX ((screenHeight * 1.0f) / screenWidth)

Более подробная информация здесь: Вращение Android VideoView

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...