android - CameraKit 未按预期运行 v1.0.0 beta 3.11。单击按钮不拍照

标签 android android-camera

我已经根据 camerakit 文档复制/创建了以下代码。但是当我按下按钮时,没有任何反应!

我使用的是 v1.0.0 beta 3.11 版本。文档部分仅提供基本信息,不提供详细的设置示例,除非我读错了页面。

package com.example.eg

import android.support.v7.app.AppCompatActivity
import com.example.eg.R
import android.os.Bundle
import android.util.Log
import com.camerakit.CameraKitView
import java.io.FileOutputStream
import android.widget.Toast
import com.camerakit.CameraKit
import kotlinx.android.synthetic.main.activity_camera.*

class Camera_Activity : AppCompatActivity() {
    private lateinit var cameraKitView: CameraKitView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_camera)
        cameraKitView = findViewById<CameraKitView>(R.id.camera)

        cameraKitView.requestPermissions(this) // I have permission="camera" in xml

        val filePath = intent.getStringExtra("path")
        cameraSettings()

        cameraKitView.errorListener = CameraKitView.ErrorListener { cameraKitView, e ->
            Toast.makeText(this,"Camera error!",Toast.LENGTH_SHORT).show()
        }

        button.setOnClickListener {
            cameraKitView.captureImage(object:CameraKitView.ImageCallback {
                override fun onImage(p0: CameraKitView?, p1: ByteArray?) {
// Code never reaches here
if (LOG_ENABLED) Log.e("Picture taken?: ","YES--------")
                    val outputStream = FileOutputStream(filePath)
                    outputStream.write(p1)
                    outputStream.close()
                    finish()

                }
            })
        }
    }


    override fun onStart() {
        super.onStart()
        cameraKitView.onStart()
    }
    override fun onResume() {
        super.onResume()
        cameraKitView.onResume()
    }
    override fun onPause() {
        cameraKitView.onPause()
        super.onPause()
    }
    override fun onStop() {
        cameraKitView.onStop()
        super.onStop()
    }
    override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<String>, grantResults: IntArray) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults)
        cameraKitView.onRequestPermissionsResult(requestCode, permissions, grantResults)
    }

    private fun cameraSettings(){
        //OPTIONS BELOW: back, FACING_BACK front, FACING_FRONT
        cameraKitView.setFacing(CameraKit.FACING_BACK)
        //cameraKitView.toggleFacing()
        cameraKitView.imageMegaPixels = 1f //1 megapixel

        //OPTIONS BELOW: off, FLASH_OFF on, FLASH_ON
        //cameraKitView.setFlash(CameraKit.FLASH_OFF)
        //OPTIONS BELOW: auto, FOCUS_AUTO continuous, FOCUS_CONTINUOUS off, FOCUS_OFF
        cameraKitView.setFocus(CameraKit.FOCUS_AUTO)
        //OPTIONS BELOW: camera all audio location storage none
        //cameraKitView.setPermissions()
    }


}

我的 list 文件具有摄像头和写入外部存储权限,我知道外部存储权限有效,因为其他 Activity 能够毫无问题地执行此操作。

虽然我在做这件事,但我想请求一个信息源,其中详细解释了这个 camerakit api,这样不仅专家可以理解它,初级水平的人也可以尝试一下。

最佳答案

这是由库的 Kotlin 协程引起的问题。我读到他们正在处理它,我使用 3.10 而不是 3.11 版本解决了它。

关于android - CameraKit 未按预期运行 v1.0.0 beta 3.11。单击按钮不拍照,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55458597/

相关文章:

android - 相机图片到位图导致图像困惑

android - 对 `AImageReader_new' 的 undefined reference

android - 如何将图库按钮添加到有意打开的相机中?

android - 检测后置摄像头缺失

android - 在 Android 中安排任务

java - 两个 Activity 之间的 Intent 出现 NullPointerException

android - 如何从 AsyncTask 返回位图?

android - 如何在Android中调试两个进程?

android - 如何在用户登录时获取 json 中的用户数据?

java - Android自定义相机 - 在矩形内裁剪图像