-
[AVFoundation] Observing the Playback Time (동영상의 재생시간 Observe하기)앱등이에게 살충제를 뿌린다./Apple Dev Reference 2018. 11. 6. 03:05
Observing the Playback Time
Overview
미디어의 재생시간의 흐름을 알고 싶다.
현재 재생시간에 따라 인터페이스를 변경하고 싶을 수도 있고..
이 때, KVO는 좋은 선택이 아니다. 왜냐하면 KVO는 시간의 흐름 같은 continuous state change에는 적합하지 않기 때문이다.
대신 AVPlayer는 다른 방법 2가지를 제공한다.
Observe Periodic Timing
Time interval에 기반한 Observe가 가능하다.
커스텀 미디어 재생플레이어를 만든다고 가정해보자. 미디어 재생시간을 화면에 보여줘야 할 것이다.
periodic timing을 observe하기 위해 addPeriodicTimeObserver(forInterval:queue:using:) 를 사용한다.
CMTime타입의 파라미터와, Serial Dispatch queue, callback 블락을 파라미터로 받는다.
아래 예제 코드를 참고하자.
Observe Boundary Timing
Boundary시간도 Observe할 수 있다. 미디어의 타임라인내에 여러 point를 지정할 수 있고, 재생하는 동안 해당 포인트를 지나가면 callback을 받을 수 있다.
Periodic timing Observe보다는 아니지만 꽤나 유용하다. addBoundaryTimeObserver(forTimes:queue:using:) 를 사용하면 된다.
CMTime을 랩핑한 [NSValue]타입과, Serial Dispatch queue와 callback 블락을 파라미터로 받는다. 
'앱등이에게 살충제를 뿌린다. > Apple Dev Reference' 카테고리의 다른 글
[WWDC2022] Discover PhotoKit change history (0) 2022.08.08 [WWDC2022] Embrace Swift Generic (0) 2022.08.08 [AVFoundation] About the Asset Model (AVAsset에 관하여) (0) 2018.11.06 [Apple Dev Reference] AVPlayer (0) 2018.11.02 [Apple Dev Reference - Advanced Swift] Initialization (1) (0) 2016.10.24