Предварительный просмотр SurfaceView возвращает черный экран - PullRequest
1 голос
/ 23 апреля 2019

Мне нужна помощь. Я пишу код использования 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>
...