Невозможно фотографировать с помощью CameraKit в Котлине - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь использовать CameraKit для того, чтобы сделать снимок.До сих пор я смог реализовать CameraKit и получить поток предварительного просмотра с моей камеры.

Вот мой код:

package com.example.testapp
import com.camerakit.CameraKitView
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.Toast
import kotlinx.android.synthetic.main.activity_camera_screen.*


class cameraScreen : AppCompatActivity() {

    private lateinit var cameraKitView:CameraKitView


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

        photoButton.setOnClickListener{
            cameraKitView.captureImage(object:CameraKitView.ImageCallback() {
                 override fun onImage(cameraKitView:CameraKitView, capturedImage:ByteArray) {
                    // capturedImage contains the image from the CameraKitView.
                     Toast.makeText(applicationContext,"Image Taken", Toast.LENGTH_SHORT).show()
                 }
            })
        }

    }

    override fun onStart() {
        super.onStart()
        cameraKitView.onStart()

    }

    override fun onResume() {
        super.onResume()
        cameraKitView.onResume()

    }

    public override fun onPause() {
        cameraKitView.onPause()
        super.onPause()
    }

    override fun onStop() {
        cameraKitView.onStop()
        super.onStop()
    }

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

Теперь, согласно Документам CameraKit, это то, что делаетизображение:

cameraKitView.captureImage(new  CameraKitView.ImageCallback() {
    @Override
    public void onImage(CameraKitView cameraKitView, final byte[] capturedImage) {
        // capturedImage contains the image from the CameraKitView.
    }
})

Как видите, я пытался преобразовать этот код Java в Kotlin выше.Тем не менее, в этой строке - cameraKitView.captureImage(object:CameraKitView.ImageCallback() { Я получаю сообщение об ошибке

Этот класс не имеет конструктора

Я получаю эту ошибку на ImageCallback ().Я пробовал множество примеров того, как захватить изображение из CameraKit, но все они в Java, и когда я их конвертирую, все они выдают мне ту же ошибку.

Как мне решить эту проблему?Кроме того, как я могу предварительно просмотреть изображение после его съемки, пока пользователь не нажмет кнопку, чтобы сохранить его (или отклонить, в этом случае я вернусь к камере)?

Обновление

Убраны круглые скобки с линии cameraKitView.captureImage(object:CameraKitView.ImageCallback().Это убрало ошибку и показало тост, но приложение не получило ответа, поэтому я не знаю, делается ли снимок или нет.

Новая строка теперь cameraKitView.captureImage(object:CameraKitView.ImageCallback

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...