Я пытаюсь использовать 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