В чем разница между VideoView, TextureView и Suraceview в Android?
И когда я использую каждый из них?
В чем разница между VideoView, TextureView и Suraceview в Android?
И когда я использую каждый из них?
Извините за поздний ответ, просто наткнулся на это, но ответ TL; DR таков:
VideoView
-> VideoView расширяет SurfaceView и по сути является просто SurfaceView + MediaPlayer. Демонтаж поверхности и MediaPlayer и т. д. осуществляется с помощью виджета для вашего удобства.
SurfaceView
-> Согласно разработчику Android:
Предоставляет специальную поверхность для рисования, встроенную в иерархию представлений. Вы можете управлять форматом этой поверхности и, если хотите, ее размером; SurfaceView позаботится о размещении поверхности в правильном месте на экране.
Поверхность упорядочена по оси Z, так что она находится за окном, содержащим его SurfaceView; SurfaceView пробивает дыру в своем окне, чтобы можно было отобразить его поверхность
Это означает, что для создания выделенной области рисования, подключенной к графическому процессору, требуется информация из иерархии видов. Недостатком этого является отсутствие причудливых элементов просмотра, таких как анимация и переходы. Но более производительный
TextureView
-> От разработчика Android:
В отличие от SurfaceView, TextureView не создает отдельное окно, а ведет себя как обычное представление. Это ключевое отличие позволяет перемещать, преобразовывать, анимировать и т. д. TextureView.
Вот и все, недостаток TextureView заключается в том, что из-за того, что он является частью вашей иерархии представлений, он будет перерисовывать себя во время проходов представления, что затратит больше ресурсов, но у вас будет < strong>анимация, переходы, альфа-канал и т. д.