SwiftUI 를 이용한 AVPlayer Progress Binding 처리 - kirseia/study GitHub Wiki
간단한 앱을 만드는데 SwiftUI를 이용하고 있는데 기존에는 쉽게 해결했을 것 같은데 쉽게 해결이 안되는 것들이 있었다.
요구사항
- AVPlayer를 이용해 영상을 재생
- 재생 / 멈춤 토글 버튼이 존재
- AVPlayer 재생 시간에 따라 ProgressBar가 업데이트 됨
- ProgressBar를 drag 하면 AVPlayer가 seek 됨
1) AVPlayer 이용한 재생
- 기본적으로 SwiftUI에서는 AVPlayerLayer을 사용할 수 없어서 기존 UIKit을 활용해서 AVPlayerLayer + AVPlayer를 활용한 Custom View를 만들었음.
그리고 UIViewRepresentable을 활용해서 SwiftUI View를 만들어서 연결했음
- 문제1 - updateUIView:가 엄청나게 호출됨.
- TODO: 이유는 아직 잘 모름