В чем разница между VideoView, TextureView и Suraceview в Android?

В чем разница между VideoView, TextureView и Suraceview в Android?

И когда я использую каждый из них?


person Kishor Ramani    schedule 28.01.2016    source источник
comment
VideoView — это просто оболочка над SurfaceView, которая воспроизводит видео. Если вам нужны кровавые подробности, см. source.android.com/devices/graphics/architecture. html   -  person fadden    schedule 28.01.2016


Ответы (1)


Извините за поздний ответ, просто наткнулся на это, но ответ TL; DR таков:

VideoView -> VideoView расширяет SurfaceView и по сути является просто SurfaceView + MediaPlayer. Демонтаж поверхности и MediaPlayer и т. д. осуществляется с помощью виджета для вашего удобства.

SurfaceView-> Согласно разработчику Android:

Предоставляет специальную поверхность для рисования, встроенную в иерархию представлений. Вы можете управлять форматом этой поверхности и, если хотите, ее размером; SurfaceView позаботится о размещении поверхности в правильном месте на экране.

Поверхность упорядочена по оси Z, так что она находится за окном, содержащим его SurfaceView; SurfaceView пробивает дыру в своем окне, чтобы можно было отобразить его поверхность

Это означает, что для создания выделенной области рисования, подключенной к графическому процессору, требуется информация из иерархии видов. Недостатком этого является отсутствие причудливых элементов просмотра, таких как анимация и переходы. Но более производительный

TextureView -> От разработчика Android:

В отличие от SurfaceView, TextureView не создает отдельное окно, а ведет себя как обычное представление. Это ключевое отличие позволяет перемещать, преобразовывать, анимировать и т. д. TextureView.

Вот и все, недостаток TextureView заключается в том, что из-за того, что он является частью вашей иерархии представлений, он будет перерисовывать себя во время проходов представления, что затратит больше ресурсов, но у вас будет < strong>анимация, переходы, альфа-канал и т. д.

person Mohsen Farzone    schedule 02.09.2019