티스토리 뷰

iOS

[iOS] AVPlayer 공식문서

Kim_Baechu 2022. 7. 20. 14:14

AVPlayer

플레이어의 전송 동작을 제어하는 인터페이스를 제공

 

플레이어는 미디어 asset의 재생 및 타이밍을 관리하는 컨트롤러 개체입니다. AVPlayer 인스턴스를 사용하여 QuickTime 동영상 및 MP3 오디오 파일과 같은 로컬 및 원격 파일 기반 미디어와 HTTP Live Streaming을 사용하여 제공되는 시청각 미디어를 재생할 수 있습니다.

 

플레이어를 사용하여 한 번에 하나의 미디어 asset을 재생합니다. 플레이어 인스턴스를 재사용하여 replaceCurrentItem(with:) 방법을 사용하여 추가 미디어 asset을 재생할 수 있지만 한 번에 하나의 asset의 재생만 관리합니다. 또한 이 프레임워크는 AVQueuePlayer라는 하위 클래스를 제공하여 순차적으로 재생되는 미디어 큐를 만들고 관리하는 데 사용합니다.

 

AVAsset 클래스를 사용하는 AVFoundation 모델로된 미디어 assets을 재생하기위해 AVPlayer를 사용합니다. AVAset은 기간이나 생성 날짜와 같은 미디어의 정적 측면만 모델링하며, 그 자체로는 AVPlayer를 사용하여 재생하는 데 적합하지 않습니다. asset을 재생하려면 AVPlayerItem에 있는 동적 사본의 인스턴스를 만듭니다. 이 개체는 AVPlayer 인스턴스에 의해 재생되는 자산의 타이밍 및 표시 상태를 모델링합니다. 자세한 내용은 AVPlayerItem 참조를 참조하십시오.

 

AVPlayer는 상태가 지속적으로 변화하는 동적 객체입니다. 플레이어의 상태를 관찰하는 데 사용할 수 있는 두 가지 방법이 있습니다.

  1. 일반 상태 관찰: KVO을 사용하여 현재 항목이나 재생 속도와 같은 플레이어의 동적 속성의 상태 변화를 관찰할 수 있습니다.
  2. 시간 상태 관찰: KVO는 일반적인 상태 관찰에 적합하지만 플레이어의 시간처럼 계속 변화하는 상태를 관찰하기 위한 것은 아닙니다. AVPlayer는 시간 변화를 관찰할 수 있는 두 가지 방법을 제공합니다. 이러한 메서드를 사용하면 각각 주기적으로 또는 경계별로 시간 변화를 관찰할 수 있습니다. 변경 사항이 발생하면 이러한 메서드에 제공하는 콜백 블록 또는 클로저를 호출하여 플레이어의 사용자 인터페이스 상태를 업데이트하는 등의 작업을 수행할 수 있습니다.

AVPlayer 및 AVPlayerItem은 비시각적 객체이며, 이는 asset의 비디오를 화면에 스스로 표시할 수 없음을 의미합니다. 화면에 비디오 콘텐츠를 표시하는 데 사용하는 두 가지 주요 방법은 다음과 같습니다.

  1. AVKit: 비디오 콘텐츠를 표시하는 가장 좋은 방법은 iOS 및 tvOS의 AVKit 프레임워크의 AVPlayerViewController 클래스 또는 macOS의 AVPlayerView 클래스를 사용하는 것입니다. 이러한 클래스는 전체 재생 경험을 제공하는 재생 컨트롤 및 기타 미디어 기능과 함께 비디오 콘텐츠를 제공합니다.
  2. AVPlayerLayer: 플레이어의 사용자 지정 인터페이스를 만들 때 AVPlayerLayer를 사용합니다. 이 layer를 뷰의 backing layer로 설정하거나 layer 계층에 직접 추가할 수 있습니다. AVPlayerView 및 AVPlayerViewController와 달리 플레이어 계층은 재생 컨트롤을 표시하지 않으며 화면에 시각적 컨텐츠만 표시합니다. 미디어를 통해 재생, 일시 중지 및 탐색할 수 있는 재생 전송 컨트롤을 만드는 것은 사용자에게 달려 있습니다.

AVKit 또는 AVPlayerLayer와 함께 제공되는 시각적 콘텐츠와 함께 AVSynchronizedLayer를 사용하여 플레이어의 타이밍에 동기화된 애니메이션 콘텐츠를 제공할 수도 있습니다. 플레이어 타이밍을 따라 레이어 하위 트리로 동기화된 레이어 패스를 사용하세요.

 

AVSynchronizedLayer를 사용하여 lower thirds 애니메이션 또는 비디오 전환과 같은 사용자 지정 효과를 Core Animation만들고, 플레이어의 현재 AVPlayer Item의 타이밍에 맞춰 재생하도록 할 수 있습니다.

 

 

 

 

 

 

 

 

 

https://developer.apple.com/documentation/avfoundation/avplayer

 

Apple Developer Documentation

 

developer.apple.com

 

댓글
공지사항