Мне нужна помощь. Я пишу код использования SurfaceView. Код компилируется без ошибок и вражды. Когда я открываю действия с камерой, это возвращает только черный экран. Permisson я позволил. Вы можете мне помочь?
Kotlin класс
class ScanActivity : AppCompatActivity(), SurfaceHolder.Callback {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_scan)
cameraInit()
}
private fun cameraInit(){
val surfaceView: SurfaceView = findViewById(R.id.testCamera)
val surfaceHolder: SurfaceHolder = surfaceView.holder.apply {
addCallback(this@ScanActivity)
setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS)
}
val cam: Camera = Camera.open().apply {
setPreviewDisplay(surfaceHolder)
startPreview()
}
}
override fun surfaceChanged(p0: SurfaceHolder?, p1: Int, p2: Int, p3: Int) {
}
override fun surfaceDestroyed(p0: SurfaceHolder?) {
}
override fun surfaceCreated(p0: SurfaceHolder?) {
}
}
XML-файл
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
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="wrap_content"
android:layout_height="wrap_content"
tools:context=".ScanActivity">
<SurfaceView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/testCamera"/>
</RelativeLayout>