Пожалуйста, кто-нибудь может предоставить хороший пример использования библиотеки CameraX с GLSurfaceView, не могу найти никакой информации.
Документация по использованию CameraX с пользовательской поверхностью / TextureView не существует. После бета-версии CameraX многие API изменились, поэтому существующие онлайн-примеры будут работать только с альфа-версиями. Ссылка для использования TextureView / GLSUrfaceView с версиями alpha-xx:https://github.com/android/camera-samples/tree/master/CameraXBasic
Однако эти образцы не будут работать с последними версиями beta-02 (на сегодняшний день).
Пожалуйста, обратитесь к приведенному ниже образцу, который я использовал для создания TextureView с CameraX API.
Зависимости Gradle:
dependencies{
def camerax_version = "1.0.0-beta02"
.....
implementation "androidx.camera:camera-core:$camerax_version" implementation "androidx.camera:camera-camera2:${camerax_version}"
implementation "androidx.camera:camera-lifecycle:$camerax_version"
implementation "androidx.camera:camera-view:1.0.0-alpha09"
...
}
Создайте действие для предварительного просмотра: (Пример Kotlin, но похож на Java)
class Capture : AppCompatActivity(), CameraXConfig.Provider {
// ur code
private lateinit var cameraProviderFuture : ListenableFuture<ProcessCameraProvider>
private lateinit var viewFinder: TextureView // Created in view file
// ur code
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_capture)
supportActionBar?.setDisplayHomeAsUpEnabled(true)
// CameraX related Code
cameraProviderFuture = ProcessCameraProvider.getInstance(this)
viewFinder = findViewById(R.id.view_finder)
cameraProviderFuture.addListener(Runnable {
val cameraProvider = cameraProviderFuture.get()
bindPreview(cameraProvider)
}, ContextCompat.getMainExecutor(this))
// ur code here
}
}
private fun bindPreview(cameraProvider : ProcessCameraProvider) {
var preview : Preview = Preview.Builder()
.build()
var cameraSelector : CameraSelector = CameraSelector.Builder()
.requireLensFacing(CameraSelector.LENS_FACING_BACK)
.build()
var camera = cameraProvider.bindToLifecycle(this as LifecycleOwner, cameraSelector, preview)
val surfaceTexture = (view_finder as TextureView).surfaceTexture
val surface = Surface(surfaceTexture)
val executor = Executors.newSingleThreadExecutor()
val previewSurfaceProvider = PreviewSurfaceProvider(surface, executor)
preview.setSurfaceProvider(executor,previewSurfaceProvider)
cameraProvider.bindToLifecycle(this, cameraSelector, preview)
}
Теперь создайте класс SurfaceProvider.
import android.view.Surface
import androidx.camera.core.Preview
import androidx.camera.core.SurfaceRequest
import androidx.core.util.Consumer
import java.util.concurrent.Executor
import java.util.concurrent.Executors
class PreviewSurfaceProvider (private val surface: Surface, private val executor: Executor): Preview.SurfaceProvider {
override fun onSurfaceRequested(request: SurfaceRequest) {
request.provideSurface(surface, executor, Consumer { result: SurfaceRequest.Result -> {
TODO("Not yet implemented")
}})
}
}
Создайте представление xml activity_capture.xml:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
// Can be replaced with GLSurfaceView
<TextureView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/view_finder"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
Надеюсь это поможет.
Это не GLSurfaceViewнапрямую, а образец с OpenGL. Вы можете использовать OpenGLRenderer для эффектов.
Яна Дуггар открыто говорила о своих поисках любви. Вот все, что она сказала на эту тему и о своем пятилетнем окне для замужества.
Звезда «Чужестранки» Сэм Хьюэн недавно рассказал, что он возьмет со съемочной площадки, чтобы вспомнить Джейми Фрейзера, роль, которая сделала его звездой.
«She Loves You» была написана за час, записана за день и стала песней The Beatles с одним из лучших исполнений в их карьере.
У Долли Партон и ее бабушки Бесси были особые отношения. Бабушка Партон была очень больна, но это не мешало Долли разыгрывать ее.
Истоки ислама восходят к началу VII века на Аравийском полуострове. Ислам зародился в Мекке, где человек по имени Мухаммад, преуспевающий торговец из могущественного племени, получил божественное откровение.
Вы можете подумать, что дуб или гикори — прочные породы дерева, но когда речь идет о самой твердой древесине в мире, они даже близко не стоят.
Океан полон красоты, но он также скрывает одних из самых страшных морских существ на планете. Многие из этих животных скрываются глубоко под поверхностью океана, в тёмном, полном давления мире морских глубин.
Если вы сражаетесь с враждебными мобами или готовитесь к PvP-боям, знание лучших чар для мечей в Minecraft может дать вам серьёзное преимущество. Зачарование мечей позволяет наносить больше урона, увеличивать количество выпадающих мобов и продлевать срок службы меча.
В «Детях» появится громкая камео и несколько разрушительных новостей
Утверждается, что этот RAV4 находится в отличном состоянии и готов к игре в музыкальные стулья.
На кадрах, снятых с дрона, видно, как пожарные изо всех сил пытаются потушить пламя.
«Глаза Ваканды» напрямую связаны с MCU, а также обновления о «Людях Икс '97», «Что, если...», «Сорвиголова» и многом другом.
Бессменный главный редактор, присоединившийся к американскому Vogue в 1988 году, объявил эту новость на совещании сотрудников утром в четверг, 26 июня.
Ава Гарднер была замужем за Микки Руни и Фрэнком Синтрой, и встречалась с несколькими другими голливудскими звездами. Вот взгляд назад на историю знакомств Авы Гарднер.
Джон Клиз женился на Дженнифер Уэйд в 2012 году. Вот все, что нужно знать о жене Джона Клиза, Дженнифер Уэйд.
Олимпийская чемпионка Эллисон Феликс вышла замуж за своего мужа Кеннета Фергюсона в 2018 году. Вот все, что нужно знать о муже Эллисон Феликс, Кеннете Фергюсоне.
Это поражает меня Внезапно, как это часто бывает, Это снова и снова на полпути <Нет, не то, что в Тихом океане, ты темно-бордовый, то, что на карнавале> Каждый громкий заголовок…..
В 2022 году, с выпуском GPT-3, навыки письма, кажется, стали менее важными. С помощью ИИ люди с плохим письмом также могут генерировать качественный персонал.
В современном быстро меняющемся и конкурентном мире карьера играет важную роль в личностном росте, финансовой стабильности и общей удовлетворенности жизнью. Однако многие люди оказываются в безжалостном цикле застоя и неудовлетворенности, постепенно угасая в своей профессиональной жизни.
На прошлой неделе я заметил пресс-релиз, разосланный через PressGazette (новостной веб-сайт британских СМИ). В статье сообщалось, что Acast, скандинавская компания по размещению и рекламе подкастов, возглавит консорциум «вероятно, самых влиятельных» издателей подкастинга.