IT story

AVPlayer 및 MPMoviePlayerController 차이점

hot-time 2020. 9. 11. 19:41
반응형

AVPlayer 및 MPMoviePlayerController 차이점


동영상 재생에 필요한 iPhone 애플리케이션을 개발 중입니다. 지금까지이를 달성하기위한 API가 두 개 이상 있음을 배웠습니다. AVPlayerMPMoviePlayerController.

주요 차이점은 무엇입니까?


참고 iOS9부터 Apple은 MPMoviePlayerController를 더 이상 사용하지 않습니다.

MPMoviePlayerController 클래스는 iOS 9에서 공식적으로 사용되지 않습니다. (MPMoviePlayerViewController 클래스도 공식적으로 사용되지 않습니다.) iOS 9 이상에서 비디오 콘텐츠를 재생하려면 대신 AVKit 프레임 워크의 AVPictureInPictureController 또는 AVPlayerViewController 클래스 또는 WebKit의 WKWebView 클래스를 사용하십시오.

MPMoviePlayerController 참조 에서 복사되었습니다 .

AVPlayer

AVPlayer훨씬 더 많은 유연성을 제공하지만 문서화가 잘되지 않습니다. 이 API를 사용하면 고유 한 UI를 만들어야합니다. AVFoundation(제공하는 프레임 워크 AVPlayer) 일반적으로 상태 확인 을 위해 키-값 관찰 을 많이 사용해야하므로 사용자 (코더)에게 약간 어렵습니다 . KVO의 개념은 훌륭합니다. 오해하지 마세요. 아직 경험이없는 개발자에게는 배우는 것이 고통 스러울 수 있습니다. Apple은 때때로 어떤 속성이 실제로 KVO를 준수하는지에 대한 정보를 생략하여 몇 가지 실험을해야합니다.

AVPlayerover의 큰 장점 중 하나는 여러 영화 소스를 끊김없이 재생할 수 MPMoviePlayerController있는 확장 버전 AVQueuePlayer입니다. 또 다른 장점은 바로 AVFoundation영화 구성 / 인코딩 / 변환과 같은 작업을 수행 할 수있는 풍부한 기능의 프레임 워크입니다.

의 또 다른 큰 장점 AVPlayer은 실제로 여러 비디오 소스를 문제없이 동시에 (예 : 나란히) 재생할 수 있다는 것입니다.

MPMoviePlayerController

MPMoviePlayerController사용하기 쉽고 대부분의 요구 사항을 즉시 처리 할 수 ​​있습니다. 이 API를 사용하면보기 좋고 일반적으로 이해되는 UI를 얻을 수 있습니다. 그러나 UI를 비활성화하거나 사용자 지정 UI로 바꿀 수 있습니다.

상태 변경의 경우 일반 앱에 필요한 모든 것을 다루는 MPMoviePlayerController몇 가지 NSNotifications사용 합니다.

내부적으로 MPMoviePlayerController는 위에 빌드 AVPlayer되지만 실제로는 사용자에게 완전히 투명하게 발생합니다 MPMoviePlayerController. 사용하는 동안에는 해당 레이어에 액세스 할 수 없습니다 .

MPMoviePlayerController언더 레이 AVPlayer를 싱글 톤 인스턴스로 사용하므로의 여러 인스턴스를 사용 MPMoviePlayerController하여 동시에 비디오를 재생할 수 없습니다 .

반면에 MPMoviePlayerController자신 의 기능으로의 기능을 확장하려고 시도하자마자 코드가 빠르게 복잡해집니다. 예를 들어 적절한 굶주림 감지와 같은 작업을 처리하기 위해 여러 타이머를 사용하기 시작할 수 있습니다 (실제로는 해당 기능이 포함되었습니다). 이 클래스의 iOS5 버전), 사용자 정의 UI 업데이트, ... 또는 플레이어가 여전히 사전 버퍼링 중일 때 재생을 정상적으로 중단하는 것과 같은 작업을 처리하려는 몇 가지 상태 속성이있을 수 있습니다.


개인 추천

두 가지를 모두 사용했으며 앱의 필요에 따라 두 가지를 계속 사용할 것입니다. 대부분의 (간단한) 프로젝트의 경우 사용 하기가 매우 간단하고 몇 줄의 코드만으로 본격적인 미디어 플레이어를 얻을 수 있으므로 MPMoviePlayerControllerover 사용 권장 AVPlayer합니다. 미디어 재생에 대한 요구가 더 간단하다면 한 번 살펴보십시오 MPMoviePlayerViewController(View-part 참고).

참고 URL : https://stackoverflow.com/questions/8146942/avplayer-and-mpmovieplayercontroller-differences

반응형