AVPlayerViewController - no automatic layout - constraints cannot be satisfied simultaneously.

In my project, I created a ViewController and created a class as "AVPlayerViewController" to show the video.

The code works, and I can see the video, however, I get warnings about some restrictions in the console.

My project works without AutoLayout, and I use AutoResizing. I tried the code:

self.view.translatesAutoresizingMaskIntoConstraints = false 

but warnings do not disappear, and video player controls move to the top of the screen.

Warnings:

 Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) ( "<NSAutoresizingMaskLayoutConstraint:0x1475c4540 h=-&- v=-&- _UIBackdropContentView:0x147443880.width == _UIBackdropView:0x147436a30.width>", "<NSLayoutConstraint:0x1475b38f0 H:|-(0)-[_UIBackdropView:0x147436a30] (Names: '|':UIView:0x1474368d0 )>", "<NSLayoutConstraint:0x1475b3980 H:[_UIBackdropView:0x147436a30]-(0)-| (Names: '|':UIView:0x1474368d0 )>", "<NSLayoutConstraint:0x1475b3650 H:|-(0)-[UIView:0x1474368d0] (Names: '|':AVAlphaUpdatingView:0x14744db30 )>", "<NSLayoutConstraint:0x1475b36d0 H:[UIView:0x1474368d0]-(0)-| (Names: '|':AVAlphaUpdatingView:0x14744db30 )>", "<NSLayoutConstraint:0x1475c7670 H:|-(15)-[UIView:0x1474435c0](LTR) (Names: '|':_UIBackdropContentView:0x147443880 )>", "<NSLayoutConstraint:0x1475c54d0 UIView:0x147443b40.right == _UIBackdropContentView:0x147443880.right>", "<NSLayoutConstraint:0x1475c7a40 UIView:0x1474435c0.right == UIView:0x147443b40.left - 10>", "<NSLayoutConstraint:0x1475c4da0 'UIView-Encapsulated-Layout-Width' H:[AVAlphaUpdatingView:0x14744db30(0)]>" ) Will attempt to recover by breaking constraint <NSLayoutConstraint:0x1475b3980 H:[_UIBackdropView:0x147436a30]-(0)-| (Names: '|':UIView:0x1474368d0 )> Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger. The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful. 

Any idea what to do?

+8
ios autolayout swift constraints
source share
3 answers

According to this answer, it is not possible to simultaneously satisfy the restrictions. Warnings with the AVPlayerViewController built into the storyboard , the solution seems to be to disable showPlayBackControls on the PlayerController and then add it to the view.

Once you have the AVPlayer element, you can show the player controls again (if you need them).

I suspect that a valid AVPlayer element is required to properly fulfill the playerโ€™s control restrictions.

I had the same problem and managed to fix it by making this change. Good luck

+5
source share

Oddly enough, what you do is create a second view under your main view, and then add the player view to it as a sub-view.

This problem took a whole day to solve a month ago, and how it was solved. You must remove any code that automatically changes the restrictions.

0
source share

If you programmatically create a view for your view controller, add the AVPlayerViewController as the child view controller and its view as a subview in the loadView () method instead of viewDidLoad (). No need to hide playback controls.

0
source share

All Articles