VideoGravity 프로퍼티에 대해 알아보자

videoGravity

이번 포스팅에서는 AVPlayerLayer에 표시되는 시청각 콘텐츠를 표시할 때, 시청각 콘텐츠의 비율을 조절할 수 있는 videoGravity 프로퍼티에 대해 포스팅 해볼게요 :)

videoGravity 공식문서 https://developer.apple.com/documentation/avfoundation/avplayerlayer/1388915-videogravity

종류

UIView의 프로퍼티인 contentMode와 그 종류는 접해본적이 있을텐데요!

  • scaleToFill
  • scaleAspectFit
  • ScaleAspectFill

비슷하게 AVPlayerLayer에서도 직관적으로 아래의 종류가 존재해요!

  • resizeAspect(Default)
  • resizeAspectFill
  • resize

효과

  • resizeAspect: 종횡비를 유지하고 Layer bounds의 안에 들어맞도록 설정해요. resizeAspect 속성은 초기값으로 AVPlayerLayer의 videoGravity를 따로 지정하지 않았다면 해당 속성으로 적용이 돼요. (테스트 해보니까 단말별 해상도에 따라 자연스럽게 채워지는 경우도 있고 아닌 경우도 있는거 같아요.)

  • resizeAspectFill: 종횡비를 유지하고 Layer bounds를 모두 채워요. 그렇기 때문에, 이 설정은 수평/수직 비율에 따라 비디오 이미지가 잘려 표시될 가능성이 있어요.

  • resize: 비디오가 Layer bounds를 채우기 위해 늘어나요. Layer bounds에 따라 단순히 늘어나는 것이기 때문에 비율에 맞춰 늘어나는 것이 아니라 비디오가 표시되는게 부자연스러울 수도 있어요.

적용 결과

resizeAspect resizeAspectFill resize

마무리

직접 해보니까 송출받는 영상의 비율과 그 영상을 어떻게 표시하는 것이 좋을지 커뮤니케이션을 통해서 적절한 비율로 타협하여 확정하는게 중요해 보이네요 :)

Categories:

Updated:

Leave a comment