Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 30 |
Tags
- 리액트 네이티브
- react
- sourcetree
- 빌드 오류
- AWS
- Kotlin
- 디버깅
- EC2
- Git
- 데이터바인딩
- WPF
- git인증
- aPK
- flutter
- 인증문제해결
- not working
- 안드로이드
- bitbucket
- 안드로이드 스튜디오
- react-native
- 예제
- 개발환경설정
- gradle
- Invalid credentials
- 리액트
- Android
- 설정
- VisualStudio
- 안됨
- 뒤로가기 안됨
Archives
- Today
- Total
물에 살고싶은 개발자
[CameraView] 카메라 사용 후 홈 화면을 나갔다 오면 카메라가 보일 때 본문
이번 글은 카메라뷰 라이브러리를 사용하다 오류가 발견되어 해결책을 기록하기 위한 글이다.
역시나 바로 선결론
문제발생 : 같은 Fragment에서 카메라를 사용 후 View의 Visible값만 GONE으로 변경해 사용종료처리를 했을때 홈화면을 나갔다 앱으로 돌아오면 화면에 카메라 프리뷰가 보이는 문제가 발생.
해결책 : 이전 글에서 카메라 객체에 뷰(액티비티 또는 프래그먼트)의 생명주기를 연결시켰었는데, 그걸 풀고 수동으로 처리하면 된다.
camera.setLifecycleOwner(viewLifecycleOwner)
위 코드처럼 생명주기 연결한 코드를 삭제하거나 주석처리해서 연결을 풀고 아래처럼 생명주기에서 직접 컨트롤하자.
// 라이프싸이클과 연계해서 카메라 컨트롤을 위한 변수
var isOpenedCamera = false
override fun onResume() {
super.onResume()
binding.apply {
if (isOpenedCamera) camera.open()
else camera.close()
}
}
override fun onPause() {
super.onPause()
binding.apply {
isOpenedCamera = camera.isOpened
camera.close()
}
}
override fun onDestroy() {
super.onDestroy()
binding.camera.destroy()
}
이런식으로 처리해주면 된다. 상황에 따라 예외처리가 더 필요할수도있지만, 그것은 상황에따라 너무도 다르므로 이 글에서 거기까지 다루진 않겠다.
끝 !
Comments