2017-09-26 1 views
0

사용자가 동영상을 재생할 때 사용자가 특정 비율로 재생되었을 때를 파악하려고합니다.AVPlayer가 총 재생 시간의 특정 비율에 도달하면 검색합니까?

예를 들어 사용자가 동영상을 재생 중이고 사용자가 50 %에 도달하면 일부보기를 표시하려고합니다.

더 명확히하기 위해 50 %가 발생하면 "청취자/관찰자"를 설치하는 방법이 있습니까? 관찰

답변

2

가장 좋은 방법은 아마도 docs에서 periodTimeObserver에 사용하는 것입니다 :

func addPeriodicTimeObserver() { 
    // Invoke callback every half second 
    let interval = CMTime(seconds: 0.5, 
          preferredTimescale: CMTimeScale(NSEC_PER_SEC)) 
    // Queue on which to invoke the callback 
    let mainQueue = DispatchQueue.main 
    // Add time observer 
    timeObserverToken = 
     player.addPeriodicTimeObserver(forInterval: interval, queue: mainQueue) { 
      [weak self] time in 
      // Check whether the time has reached half of duration 
    } 
} 
+0

감사합니다. @rashwanL이 그의 대답에서 제안한 것과는 달리 periodTimeObserver를 사용하면 어떤 이점이 있습니까? – Changerrs

+0

@Changerrs "비디오 전문가가 아닌 공식적인 방법을 사용해야합니다."라는 일반적인 조언 이외에도 "비디오 타임 틱"이 유효하지 않을 수 있으므로 내부 구현이 어떻게 개선 될 수 있는지 알 수있었습니다. 만든 사용자 정의 타이머와 동기화하십시오. – kgaidis

관련 문제