이전에 카메라로 사진 찍은거 바로 가져오려고 한 코린이인데
Camera 라이브러리는 더 이상 사용되지 않는다는걸 알게되서 CameraX 라이브러리를 사용함.
카메라 실행 까지는 성공했는데 캡처를 하면 아무런 반응이 없음
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
private fun takePhoto() {
val imageCapture = imageCapture?: return
val photoFile = File(outputDirectory, newJpgFileName())
val outputOptions = ImageCapture.OutputFileOptions.Builder(photoFile).build()
try{
imageCapture.takePicture(
outputOptions,
ContextCompat.getMainExecutor(this),
object: ImageCapture.OnImageSavedCallback{
override fun onImageSaved(outputFileResults: ImageCapture.OutputFileResults) {
val savedUri = Uri.fromFile(photoFile)
val msg = "Photo capture succeeded: $savedUri"
Toast.makeText(this@MainActivity, msg, Toast.LENGTH_LONG).show()
displayPhoto(savedUri)
}
override fun onError(e: ImageCaptureException) {
Log.d("CameraX-Debug", "Photo capture failed: ${e.message}", e)
e.printStackTrace()
}
}
)
}catch (e: Exception){
e.printStackTrace()
}
}
|
cs |
Capture 버튼을 누르면 takePhoto 함수가 실행되도록 했는데
imageCapture.takePicture가 정상적으로 실행됐다면, ImageCapture.OnImageSavedCallback에
onImageSeved가 실행되야 하는데(실패하면 onError) 중단점 넣어봐도 전~혀 들어가질 않음
여기서 이유를 모르겠어서 또 멈췄다 ㅜㅜ
10개의 댓글
무분별한 사용은 차단될 수 있습니다.
슈카임
디버깅은 해 봄?
질문 수준이 좀 그렇네;
집에가게해줘
어떤 부분이 질문 수준이 낮다고 생각한거야? 그 부분을 알려주면 고쳐서 다시 올려볼께
집에가게해줘
해결해서 답변 안 달아줘도 될듯! ㅎㅎ ㄳ
슈카임
굿!
아까 내가 댓글로 그렇게 쓴 이유는 에러 로그라도 써주든지 어느부분까지 제대로 실행 됐는지 정도까지는 써줘야 어느정도 감을 잡고 얘기해주는데 냅다 안 된다고 하면 같은 환경 구축이 되어 있지 않은 사람은 알 수가 없음.
그래서 디버깅 해봤냐고 물어봄.
너무 좆같이 이야기해서 정말 미안하고 해결 해서 다행입니다~
집에가게해줘
아닙니다!
안드로이드 공식문서 보고 따라한거라 환경설정 문제는 생길수가 없고,
디버깅은 너무나도 당연히 해봤어야 하는거고 로그캣이나 onError나 catch에도 잡히질 않아서 올렸던건데
제가 너무 싹다 생략해버리긴 했네요;;
아무튼 감사합니다 ㅎㅎ
년간솔로
코틀린 안한지 오래되서 잘 모르긴한데
val imageCapture = imageCapture?: return
이 부분 imageCapture가 null이면 리턴시킨다는 의미아님?
imageCapture 디버그 찍어보면 어떨까
집에가게해줘
아 거긴 찍어봤는데 정상적으로 넘어가고 imageCapture.takePicture까지 정상적으로 실행 함.
혹시나 imageCapture.takePicture 내부에 뭐 에러 있어서 그런가? 싶어서 try문으로 감싸줬는데 catch로 빠지지도 않아..
년간솔로
try{
imageCapture.takePicture(
여기를
imageCapture?.takePicture(
이렇게 하면 어떰? 검색해보니까 여기빼고 나머지는 다 비슷한것같은데
https://itstudy-mary.tistory.com/361 이 글이 하고자하는거랑 같은 느낌인듯?
집에가게해줘
해외 글에 핸드폰 껏다 켜보라는 글 있어서 껏다 키니까 onError에 들어옴;;
에러 내용은 "Not bound to a valid Camera"인데 이것만 찾으면 해결될 듯! ㅎㅎ
집에가게해줘
그리고 바로 해결 봄
cameraProvider에 있는 bindToLifecycle에 내 imageCaputre를 바인딩 해줘야 가져올 수 있네! ㅎㅎ
답변 ㄳ