2017-09-22 2 views
3

비디오 재생을 렌더링하고 CIFilter를 적용하는 프로젝트가 있습니다. 비디오 컴포지션을 사용하여 필터로 비디오를 얻을 수 있지만 문제는 필터를 스 와이프해야한다는 것입니다 (다음 필터 미리보기를 통해 첫 번째 이미지 뷰에는 마스크를 사용하고 두 번째 필터는 다음 필터로 필터링). CADisplayLink stutters (아카이브에서 빌드 할 때)

func displayLinkDidRefresh(link: CADisplayLink){ 

    let itemTime = videoOutput.itemTime(forHostTime: CACurrentMediaTime()) 

    if videoOutput.hasNewPixelBuffer(forItemTime: itemTime) { 

     if let pixelBuffer = videoOutput.copyPixelBuffer(forItemTime: itemTime, itemTimeForDisplay: nil){ 
      unfilteredImage = CIImage(cvImageBuffer: pixelBuffer) 
      displayFilteredImage(unfilteredImage: unfilteredImage) 
     } 
    } 
} 

는 AVPlayer를 인스턴스와 CADisplayLink 만드는 데 사용되는 코드입니다 : 내가 (또는 최소 수준에) 더 더듬을 경험하지

player = AVPlayer(playerItem: item) 
    player.isMuted = true 

    displayLink = CADisplayLink(target: self, selector: #selector(displayLinkDidRefresh(link:))) 
    displayLink!.preferredFramesPerSecond = 24 
    displayLink!.add(to: RunLoop.main, forMode: RunLoopMode.commonModes) 

    NotificationCenter.default.addObserver(self, selector: #selector(self.playerItemDidReachEnd(notification:)), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: self.player.currentItem) 

디버거에서 실행하지만, 실행하는 경우 아카이브에서 구축이 많이 말더듬고있어. 내가 테스트하기 위해 전화에서 앱을 삭제 한 다음 전화와 테스트 도구에 설치하고 디버그 빌드가 정상적으로 작동하지만 보관 파일이 문제를 일으키고 있다고 말했다. 이것에 대한 모든 입력?

편집 1 :

더 나은 일을 얻기 위해 관리하지만, 여전히 항목 및 플레이어 상태가 readyToPlay 때 플레이어 항목에 비디오 구성을 부착 한 후 망가.

답변

0

이 문제를 발견 한 후 얼마되지 않아 코드에 문제가 없습니다. 문제는 Appsee 분석 기능이 앱 내에 있고 적절한 화면 렌더링을 위해이 화면에서 일시 중지해야한다는 것입니다. Appsee가 디버그 환경에서 작동하지 못하게하는 조건 인 경우 AppDelegate가 디버그 모드에서 이러한 문제를 경험하지 못한 이유입니다.

관련 문제