Kotlin 无法在曲面视图上显示RGB图像

Kotlin 无法在曲面视图上显示RGB图像,kotlin,camera,surfaceview,surfaceholder,image-formats,Kotlin,Camera,Surfaceview,Surfaceholder,Image Formats,我希望以RGB_565格式从相机获取数据(预览期间),并以相同格式在SurfaceView上显示数据。以下是我为此编写的代码: class CameraPreview( context: Context, private val mCamera: Camera) : SurfaceView(context), SurfaceHolder.Callback , Camera.PreviewCallback { private val mHolder: Surfa

我希望以RGB_565格式从相机获取数据(预览期间),并以相同格式在SurfaceView上显示数据。以下是我为此编写的代码:

    class CameraPreview(
    context: Context,
    private val mCamera: Camera) : SurfaceView(context), SurfaceHolder.Callback , Camera.PreviewCallback {


    private val mHolder: SurfaceHolder = holder.apply {
        // Install a SurfaceHolder.Callback so we get notified when the
        // underlying surface is created and destroyed.
        **setFormat(PixelFormat.RGB_565)**

        addCallback(this@CameraPreview)

        // deprecated setting, but required on Android versions prior to 3.0
        setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS)
    }

    override fun surfaceCreated(holder: SurfaceHolder) {
        var cameraParameters: Camera.Parameters? = mCamera.parameters
        cameraParameters?.set("orientation", "portrait")
        mCamera.setDisplayOrientation(90)
        cameraParameters?.setRotation(90)

        **cameraParameters?.previewFormat=ImageFormat.RGB_565**
        var x=cameraParameters?.previewFormat
        
        mCamera.parameters = cameraParameters

        

        // The Surface has been created, now tell the camera where to draw the preview.
        mCamera.apply {
            try {
                setPreviewDisplay(holder)
                setPreviewCallback(this@CameraPreview)
                startPreview()
            } catch (e: IOException) {
                Log.d(TAG, "Error setting camera preview: ${e.message}")
            }
        }


    }
//Surface Changed
//Surface Destroyed
//OnPreviewCallback
}
但是当我运行代码时,surface视图显示一个白色屏幕。请注意,我已将重要的行突出显示为**..**。删除这些“重要”线后,曲面视图将正确显示相机输出(默认情况下,它接受NV21格式)。要使曲面视图接受并以RGB_565格式显示图像,我必须对代码进行哪些更改