I\'m switching from MPMoviePlayerController
to AVPlayer
as I need finer grained control over video swapping. The .mov
file I was playi
Found out it was a result of using AutoLayout
. In the viewDidLoad
the self.playerContainer.bounds
is a CGRectZero
.
I had to assign the playerLayer frame in the viewDidAppear
to match the playerContainer.
Since we use AVPlayerLayer (a subclass of CALayer), we need to set the frame
- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
self.avPlayerLayer.frame = self.movieContainerView.bounds;
}
Make sure you the statement that plays the video:
[self.player play]
is invoked from main dispatch queue like this (Swift 3):
DispatchQueue.main.async {
self.player.play()
}