MPMoviePlayerViewController 가 iOS 13 에서 공식적으로 deprecated 되면서
AVPlayerViewController로 변경이 필요 하게 되었다
AVPlayerViewController 기본 사용 코드
//플레이어 생성
@property (assign, nonatomic) AVPlayerViewController * playerController;
self.playerController = [AVPlayerViewController new];
self.playerController.showsPlaybackControls = NO; //기본 컨트롤러 안보이게
self.playerController.player.actionAtItemEnd = AVPlayerActionAtItemEndPause;
//url 등록 후
self.playerController.player = [[AVPlayer alloc] initWithURL:[NSURL fileURLWithPath:videoUrl]];
//영상이 끝난 후 호출을 받을 수 있게 노티 등록
//완료 처리 콜백 함수 videoFinished(여기서 후처리) 등록
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(videoFinished:)
name:AVPlayerItemDidPlayToEndTimeNotification
object:self.playerController.player.currentItem];
[self.playerController.view setFrame:videoRect]; //비디오 사이즈 설정
[self.view addSubview:self.playerController.view];
//play
//resume
[self.playerController.player play];
//pause
[self.playerController.player pause];
//stop
/* MPMoviePlayerViewController의 경우에는 *stop 기능*을 이용하여서 *stop 종료 핸들러를 통해* 처리를 하고 있었다.
AVPlayerViewController의 경우 *stop* 같은 함수가 따로 제공 되어 있지 않다.
그래서 seekToTime 함수를 이용하여서 클릭시 stop 처리 함 */
[self.playerController.player seekToTime:CMTimeMake(sec, 1)]; // 종료 시간을 넣어주게 처리
//플레이어 해제시
//노티 삭제
[[NSNotificationCenter defaultCenter] removeObserver:self
name:AVPlayerItemDidPlayToEndTimeNotification
object:self.playerController.player.currentItem];
self.playerController.player.actionAtItemEnd
* 재생 완료 후 수행
* AVPlayerActionAtItemEndPause 재생 후 정지 되도록
노티 등록
* AVPlayerItemDidPlayToEndTimeNotification
* AVPlayer의 영상이 종료 되었을때 노티 받을 수 있는 핸들러
그리드형(광고전용)