Подтвердить что ты не робот

Невозможно одновременно удовлетворить ограничения Предупреждения с помощью AVPlayerViewController, встроенные в раскадровку

Я пытаюсь настроить AVPlayerViewController полностью через раскадровки, встраиваясь в отдельный контроллер просмотра.

Шаги:

  • Создайте приложение Single View в Xcode.
  • Вставить VC в контроллер навигации.
  • Добавить панель инструментов внизу. (прикреплено к супервизу (ведущее, трейлинг, руководство по макетам внизу, высота (44)).
  • Добавить контейнер View в родительском контроллере View (прикреплен к супервизу (ведущий, трейлинг), руководству Top Layout, верхней панели инструментов).
  • Удалите стандартный контроллер представлений, который поставляется с представлением контейнера.
  • Перетащите объект контроллера AV Player из библиотеки объектов.
  • Подключить встраивание segue из Container View в AV Player View Controller.

КОД НЕ ДОБАВЛЕН.

Вот что выглядит моя раскадровка:

введите описание изображения здесь

Просмотр иерархии:

введите описание изображения здесь

Все работает нормально: НО ПРОБЛЕМА: Как только я запустил его, я получаю эти предупреждения в отладчике:

2015-09-30 12:58:35.904 AVPlayerTest[9352:446772] Unable to simultaneously satisfy constraints.
    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:0x7f93259513b0 h=-&- v=-&- _UIBackdropContentView:0x7f9325860000.width == _UIBackdropView:0x7f932585e990.width>",
    "<NSLayoutConstraint:0x7f932592bc70 H:|-(14)-[UILabel:0x7f9325925590'Hi-Speed Scrubbing']   (Names: '|':_UIBackdropContentView:0x7f9325860000 )>",
    "<NSLayoutConstraint:0x7f932592bcf0 H:[UILabel:0x7f9325925590'Hi-Speed Scrubbing']-(14)-|   (Names: '|':_UIBackdropContentView:0x7f9325860000 )>",
    "<NSLayoutConstraint:0x7f932592b770 H:|-(0)-[_UIBackdropView:0x7f932585e990]   (Names: '|':UIView:0x7f932585e830 )>",
    "<NSLayoutConstraint:0x7f932592b7f0 H:[_UIBackdropView:0x7f932585e990]-(0)-|   (Names: '|':UIView:0x7f932585e830 )>",
    "<NSLayoutConstraint:0x7f932592b450 H:|-(0)-[UIView:0x7f932585e830]   (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
    "<NSLayoutConstraint:0x7f932592b4d0 H:[UIView:0x7f932585e830]-(0)-|   (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
    "<NSLayoutConstraint:0x7f932594aa10 'UIView-Encapsulated-Layout-Width' H:[AVAlphaUpdatingView:0x7f932585e310(0)]>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x7f932592bcf0 H:[UILabel:0x7f9325925590'Hi-Speed Scrubbing']-(14)-|   (Names: '|':_UIBackdropContentView:0x7f9325860000 )>

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.
2015-09-30 12:58:35.905 AVPlayerTest[9352:446772] Unable to simultaneously satisfy constraints.
    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:0x7f93259513b0 h=-&- v=-&- _UIBackdropContentView:0x7f9325860000.width == _UIBackdropView:0x7f932585e990.width>",
    "<NSLayoutConstraint:0x7f932592bdd0 H:|-(14)-[UILabel:0x7f9325929bb0'Slide your finger up to a...']   (Names: '|':_UIBackdropContentView:0x7f9325860000 )>",
    "<NSLayoutConstraint:0x7f932592be50 H:[UILabel:0x7f9325929bb0'Slide your finger up to a...']-(14)-|   (Names: '|':_UIBackdropContentView:0x7f9325860000 )>",
    "<NSLayoutConstraint:0x7f932592b770 H:|-(0)-[_UIBackdropView:0x7f932585e990]   (Names: '|':UIView:0x7f932585e830 )>",
    "<NSLayoutConstraint:0x7f932592b7f0 H:[_UIBackdropView:0x7f932585e990]-(0)-|   (Names: '|':UIView:0x7f932585e830 )>",
    "<NSLayoutConstraint:0x7f932592b450 H:|-(0)-[UIView:0x7f932585e830]   (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
    "<NSLayoutConstraint:0x7f932592b4d0 H:[UIView:0x7f932585e830]-(0)-|   (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
    "<NSLayoutConstraint:0x7f932594aa10 'UIView-Encapsulated-Layout-Width' H:[AVAlphaUpdatingView:0x7f932585e310(0)]>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x7f932592be50 H:[UILabel:0x7f9325929bb0'Slide your finger up to a...']-(14)-|   (Names: '|':_UIBackdropContentView:0x7f9325860000 )>

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.
2015-09-30 12:58:35.906 AVPlayerTest[9352:446772] Unable to simultaneously satisfy constraints.
    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) 
(
    "<NSLayoutConstraint:0x7f932592b5e0 V:|-(>=0)-[UIView:0x7f932585e830]   (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
    "<NSLayoutConstraint:0x7f932592b660 V:[UIView:0x7f932585e830]-(0)-|   (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
    "<NSLayoutConstraint:0x7f932592af50 V:[UIView:0x7f932585e830(44)]>",
    "<NSLayoutConstraint:0x7f9325952c30 'UIView-Encapsulated-Layout-Height' V:[AVAlphaUpdatingView:0x7f932585e310(0)]>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x7f932592b660 V:[UIView:0x7f932585e830]-(0)-|   (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>

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.
2015-09-30 12:58:35.907 AVPlayerTest[9352:446772] Unable to simultaneously satisfy constraints.
    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:0x7f93259513b0 h=-&- v=-&- _UIBackdropContentView:0x7f9325860000.width == _UIBackdropView:0x7f932585e990.width>",
    "<NSLayoutConstraint:0x7f932592ba00 H:|-(0)-[UIView:0x7f932585fbc0]   (Names: '|':_UIBackdropContentView:0x7f9325860000 )>",
    "<NSLayoutConstraint:0x7f932592ba80 H:[UIView:0x7f932585fbc0]-(0)-|   (Names: '|':_UIBackdropContentView:0x7f9325860000 )>",
    "<NSLayoutConstraint:0x7f932592b770 H:|-(0)-[_UIBackdropView:0x7f932585e990]   (Names: '|':UIView:0x7f932585e830 )>",
    "<NSLayoutConstraint:0x7f932592b7f0 H:[_UIBackdropView:0x7f932585e990]-(0)-|   (Names: '|':UIView:0x7f932585e830 )>",
    "<NSLayoutConstraint:0x7f932592b450 H:|-(0)-[UIView:0x7f932585e830]   (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
    "<NSLayoutConstraint:0x7f932592b4d0 H:[UIView:0x7f932585e830]-(0)-|   (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
    "<NSLayoutConstraint:0x7f932582a040 H:|-(14)-[AVButton:0x7f93258609b0](LTR)   (Names: '|':UIView:0x7f932585fbc0 )>",
    "<NSLayoutConstraint:0x7f9325829f90 H:[AVButton:0x7f93258609b0]-(15)-[UILabel:0x7f932347dc20'--:--'](LTR)>",
    "<NSLayoutConstraint:0x7f9325839550 H:[UILabel:0x7f932347dc20'--:--']-(12)-[AVScrubber:0x7f93234a4350](LTR)>",
    "<NSLayoutConstraint:0x7f932585a2f0 AVScrubber:0x7f93234a4350.right == UILabel:0x7f932583a470'--:--'.left - 12>",
    "<NSLayoutConstraint:0x7f932580b390 UILabel:0x7f932583a470'--:--'.right == AVButton:0x7f932585e480.left - 15>",
    "<NSLayoutConstraint:0x7f932586f490 AVButton:0x7f932585e480.right == AVButton:0x7f93234d1790.left - 10>",
    "<NSLayoutConstraint:0x7f932580b340 AVButton:0x7f93234d1790.right == AVButton:0x7f93234d6540.left - 10>",
    "<NSLayoutConstraint:0x7f932584c870 AVButton:0x7f93234d6540.right == UIView:0x7f932585fbc0.right - 14>",
    "<NSLayoutConstraint:0x7f932594aa10 'UIView-Encapsulated-Layout-Width' H:[AVAlphaUpdatingView:0x7f932585e310(0)]>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x7f9325829f90 H:[AVButton:0x7f93258609b0]-(15)-[UILabel:0x7f932347dc20'--:--'](LTR)>

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.
2015-09-30 12:58:35.909 AVPlayerTest[9352:446772] Unable to simultaneously satisfy constraints.
    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:0x7f93259513b0 h=-&- v=-&- _UIBackdropContentView:0x7f9325860000.width == _UIBackdropView:0x7f932585e990.width>",
    "<NSLayoutConstraint:0x7f932592ba00 H:|-(0)-[UIView:0x7f932585fbc0]   (Names: '|':_UIBackdropContentView:0x7f9325860000 )>",
    "<NSLayoutConstraint:0x7f932592ba80 H:[UIView:0x7f932585fbc0]-(0)-|   (Names: '|':_UIBackdropContentView:0x7f9325860000 )>",
    "<NSLayoutConstraint:0x7f932592b770 H:|-(0)-[_UIBackdropView:0x7f932585e990]   (Names: '|':UIView:0x7f932585e830 )>",
    "<NSLayoutConstraint:0x7f932592b7f0 H:[_UIBackdropView:0x7f932585e990]-(0)-|   (Names: '|':UIView:0x7f932585e830 )>",
    "<NSLayoutConstraint:0x7f932592b450 H:|-(0)-[UIView:0x7f932585e830]   (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
    "<NSLayoutConstraint:0x7f932592b4d0 H:[UIView:0x7f932585e830]-(0)-|   (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
    "<NSLayoutConstraint:0x7f932582a040 H:|-(14)-[AVButton:0x7f93258609b0](LTR)   (Names: '|':UIView:0x7f932585fbc0 )>",
    "<NSLayoutConstraint:0x7f932586f490 AVButton:0x7f932585e480.right == AVButton:0x7f93234d1790.left - 10>",
    "<NSLayoutConstraint:0x7f932580b340 AVButton:0x7f93234d1790.right == AVButton:0x7f93234d6540.left - 10>",
    "<NSLayoutConstraint:0x7f932584c870 AVButton:0x7f93234d6540.right == UIView:0x7f932585fbc0.right - 14>",
    "<NSLayoutConstraint:0x7f9325859740 H:[AVButton:0x7f93258609b0]-(>=15)-[UILabel:0x7f93234e53f0'Live Broadcast'](LTR)>",
    "<NSLayoutConstraint:0x7f932583bea0 UILabel:0x7f93234e53f0'Live Broadcast'.right <= AVButton:0x7f932585e480.left - 15>",
    "<NSLayoutConstraint:0x7f932594aa10 'UIView-Encapsulated-Layout-Width' H:[AVAlphaUpdatingView:0x7f932585e310(0)]>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x7f9325859740 H:[AVButton:0x7f93258609b0]-(>=15)-[UILabel:0x7f93234e53f0'Live Broadcast'](LTR)>

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.
2015-09-30 12:58:35.910 AVPlayerTest[9352:446772] Unable to simultaneously satisfy constraints.
    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:0x7f93259513b0 h=-&- v=-&- _UIBackdropContentView:0x7f9325860000.width == _UIBackdropView:0x7f932585e990.width>",
    "<NSLayoutConstraint:0x7f9323520650 H:|-(0)-[UIActivityIndicatorView:0x7f93234e6ee0]   (Names: '|':UIView:0x7f93234e6120 )>",
    "<NSLayoutConstraint:0x7f93235206a0 H:[UIActivityIndicatorView:0x7f93234e6ee0]-(10)-[UILabel:0x7f93235203b0'Loading\U2026']>",
    "<NSLayoutConstraint:0x7f9323520740 H:[UILabel:0x7f93235203b0'Loading\U2026']-(0)-|   (Names: '|':UIView:0x7f93234e6120 )>",
    "<NSLayoutConstraint:0x7f9323521f90 H:|-(>=0)-[UIView:0x7f93234e6120]   (Names: '|':AVLoadingIndicatorView:0x7f93234e5fb0 )>",
    "<NSLayoutConstraint:0x7f9323510da0 UIView:0x7f93234e6120.centerX == AVLoadingIndicatorView:0x7f93234e5fb0.centerX>",
    "<NSLayoutConstraint:0x7f932592ba00 H:|-(0)-[UIView:0x7f932585fbc0]   (Names: '|':_UIBackdropContentView:0x7f9325860000 )>",
    "<NSLayoutConstraint:0x7f932592ba80 H:[UIView:0x7f932585fbc0]-(0)-|   (Names: '|':_UIBackdropContentView:0x7f9325860000 )>",
    "<NSLayoutConstraint:0x7f932592b770 H:|-(0)-[_UIBackdropView:0x7f932585e990]   (Names: '|':UIView:0x7f932585e830 )>",
    "<NSLayoutConstraint:0x7f932592b7f0 H:[_UIBackdropView:0x7f932585e990]-(0)-|   (Names: '|':UIView:0x7f932585e830 )>",
    "<NSLayoutConstraint:0x7f932592b450 H:|-(0)-[UIView:0x7f932585e830]   (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
    "<NSLayoutConstraint:0x7f932592b4d0 H:[UIView:0x7f932585e830]-(0)-|   (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
    "<NSLayoutConstraint:0x7f932582a040 H:|-(14)-[AVButton:0x7f93258609b0](LTR)   (Names: '|':UIView:0x7f932585fbc0 )>",
    "<NSLayoutConstraint:0x7f932586f490 AVButton:0x7f932585e480.right == AVButton:0x7f93234d1790.left - 10>",
    "<NSLayoutConstraint:0x7f932580b340 AVButton:0x7f93234d1790.right == AVButton:0x7f93234d6540.left - 10>",
    "<NSLayoutConstraint:0x7f932584c870 AVButton:0x7f93234d6540.right == UIView:0x7f932585fbc0.right - 14>",
    "<NSLayoutConstraint:0x7f932583bbc0 H:[AVButton:0x7f93258609b0]-(>=15)-[AVLoadingIndicatorView:0x7f93234e5fb0](LTR)>",
    "<NSLayoutConstraint:0x7f932583bc10 AVLoadingIndicatorView:0x7f93234e5fb0.right <= AVButton:0x7f932585e480.left - 15>",
    "<NSLayoutConstraint:0x7f932594aa10 'UIView-Encapsulated-Layout-Width' H:[AVAlphaUpdatingView:0x7f932585e310(0)]>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x7f93235206a0 H:[UIActivityIndicatorView:0x7f93234e6ee0]-(10)-[UILabel:0x7f93235203b0'Loading…']>

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.
2015-09-30 12:58:35.912 AVPlayerTest[9352:446772] Unable to simultaneously satisfy constraints.
    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:0x7f93259513b0 h=-&- v=-&- _UIBackdropContentView:0x7f9325860000.width == _UIBackdropView:0x7f932585e990.width>",
    "<NSLayoutConstraint:0x7f9323521f90 H:|-(>=0)-[UIView:0x7f93234e6120]   (Names: '|':AVLoadingIndicatorView:0x7f93234e5fb0 )>",
    "<NSLayoutConstraint:0x7f9323510da0 UIView:0x7f93234e6120.centerX == AVLoadingIndicatorView:0x7f93234e5fb0.centerX>",
    "<NSLayoutConstraint:0x7f932592ba00 H:|-(0)-[UIView:0x7f932585fbc0]   (Names: '|':_UIBackdropContentView:0x7f9325860000 )>",
    "<NSLayoutConstraint:0x7f932592ba80 H:[UIView:0x7f932585fbc0]-(0)-|   (Names: '|':_UIBackdropContentView:0x7f9325860000 )>",
    "<NSLayoutConstraint:0x7f932592b770 H:|-(0)-[_UIBackdropView:0x7f932585e990]   (Names: '|':UIView:0x7f932585e830 )>",
    "<NSLayoutConstraint:0x7f932592b7f0 H:[_UIBackdropView:0x7f932585e990]-(0)-|   (Names: '|':UIView:0x7f932585e830 )>",
    "<NSLayoutConstraint:0x7f932592b450 H:|-(0)-[UIView:0x7f932585e830]   (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
    "<NSLayoutConstraint:0x7f932592b4d0 H:[UIView:0x7f932585e830]-(0)-|   (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
    "<NSLayoutConstraint:0x7f932582a040 H:|-(14)-[AVButton:0x7f93258609b0](LTR)   (Names: '|':UIView:0x7f932585fbc0 )>",
    "<NSLayoutConstraint:0x7f932586f490 AVButton:0x7f932585e480.right == AVButton:0x7f93234d1790.left - 10>",
    "<NSLayoutConstraint:0x7f932580b340 AVButton:0x7f93234d1790.right == AVButton:0x7f93234d6540.left - 10>",
    "<NSLayoutConstraint:0x7f932584c870 AVButton:0x7f93234d6540.right == UIView:0x7f932585fbc0.right - 14>",
    "<NSLayoutConstraint:0x7f932583bbc0 H:[AVButton:0x7f93258609b0]-(>=15)-[AVLoadingIndicatorView:0x7f93234e5fb0](LTR)>",
    "<NSLayoutConstraint:0x7f932583bc10 AVLoadingIndicatorView:0x7f93234e5fb0.right <= AVButton:0x7f932585e480.left - 15>",
    "<NSLayoutConstraint:0x7f932594aa10 'UIView-Encapsulated-Layout-Width' H:[AVAlphaUpdatingView:0x7f932585e310(0)]>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x7f9323510da0 UIView:0x7f93234e6120.centerX == AVLoadingIndicatorView:0x7f93234e5fb0.centerX>

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.
2015-09-30 12:58:35.912 AVPlayerTest[9352:446772] Unable to simultaneously satisfy constraints.
    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:0x7f93259513b0 h=-&- v=-&- _UIBackdropContentView:0x7f9325860000.width == _UIBackdropView:0x7f932585e990.width>",
    "<NSLayoutConstraint:0x7f9323521f90 H:|-(>=0)-[UIView:0x7f93234e6120]   (Names: '|':AVLoadingIndicatorView:0x7f93234e5fb0 )>",
    "<NSLayoutConstraint:0x7f9323510d10 H:[UIView:0x7f93234e6120]-(>=0)-|   (Names: '|':AVLoadingIndicatorView:0x7f93234e5fb0 )>",
    "<NSLayoutConstraint:0x7f932592ba00 H:|-(0)-[UIView:0x7f932585fbc0]   (Names: '|':_UIBackdropContentView:0x7f9325860000 )>",
    "<NSLayoutConstraint:0x7f932592ba80 H:[UIView:0x7f932585fbc0]-(0)-|   (Names: '|':_UIBackdropContentView:0x7f9325860000 )>",
    "<NSLayoutConstraint:0x7f932592b770 H:|-(0)-[_UIBackdropView:0x7f932585e990]   (Names: '|':UIView:0x7f932585e830 )>",
    "<NSLayoutConstraint:0x7f932592b7f0 H:[_UIBackdropView:0x7f932585e990]-(0)-|   (Names: '|':UIView:0x7f932585e830 )>",
    "<NSLayoutConstraint:0x7f932592b450 H:|-(0)-[UIView:0x7f932585e830]   (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
    "<NSLayoutConstraint:0x7f932592b4d0 H:[UIView:0x7f932585e830]-(0)-|   (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
    "<NSLayoutConstraint:0x7f932582a040 H:|-(14)-[AVButton:0x7f93258609b0](LTR)   (Names: '|':UIView:0x7f932585fbc0 )>",
    "<NSLayoutConstraint:0x7f932586f490 AVButton:0x7f932585e480.right == AVButton:0x7f93234d1790.left - 10>",
    "<NSLayoutConstraint:0x7f932580b340 AVButton:0x7f93234d1790.right == AVButton:0x7f93234d6540.left - 10>",
    "<NSLayoutConstraint:0x7f932584c870 AVButton:0x7f93234d6540.right == UIView:0x7f932585fbc0.right - 14>",
    "<NSLayoutConstraint:0x7f932583bbc0 H:[AVButton:0x7f93258609b0]-(>=15)-[AVLoadingIndicatorView:0x7f93234e5fb0](LTR)>",
    "<NSLayoutConstraint:0x7f932583bc10 AVLoadingIndicatorView:0x7f93234e5fb0.right <= AVButton:0x7f932585e480.left - 15>",
    "<NSLayoutConstraint:0x7f932594aa10 'UIView-Encapsulated-Layout-Width' H:[AVAlphaUpdatingView:0x7f932585e310(0)]>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x7f9323510d10 H:[UIView:0x7f93234e6120]-(>=0)-|   (Names: '|':AVLoadingIndicatorView:0x7f93234e5fb0 )>

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.
2015-09-30 12:58:35.913 AVPlayerTest[9352:446772] Unable to simultaneously satisfy constraints.
    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:0x7f93259513b0 h=-&- v=-&- _UIBackdropContentView:0x7f9325860000.width == _UIBackdropView:0x7f932585e990.width>",
    "<NSLayoutConstraint:0x7f932592ba00 H:|-(0)-[UIView:0x7f932585fbc0]   (Names: '|':_UIBackdropContentView:0x7f9325860000 )>",
    "<NSLayoutConstraint:0x7f932592ba80 H:[UIView:0x7f932585fbc0]-(0)-|   (Names: '|':_UIBackdropContentView:0x7f9325860000 )>",
    "<NSLayoutConstraint:0x7f932592b770 H:|-(0)-[_UIBackdropView:0x7f932585e990]   (Names: '|':UIView:0x7f932585e830 )>",
    "<NSLayoutConstraint:0x7f932592b7f0 H:[_UIBackdropView:0x7f932585e990]-(0)-|   (Names: '|':UIView:0x7f932585e830 )>",
    "<NSLayoutConstraint:0x7f932592b450 H:|-(0)-[UIView:0x7f932585e830]   (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
    "<NSLayoutConstraint:0x7f932592b4d0 H:[UIView:0x7f932585e830]-(0)-|   (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
    "<NSLayoutConstraint:0x7f932582a040 H:|-(14)-[AVButton:0x7f93258609b0](LTR)   (Names: '|':UIView:0x7f932585fbc0 )>",
    "<NSLayoutConstraint:0x7f932586f490 AVButton:0x7f932585e480.right == AVButton:0x7f93234d1790.left - 10>",
    "<NSLayoutConstraint:0x7f932580b340 AVButton:0x7f93234d1790.right == AVButton:0x7f93234d6540.left - 10>",
    "<NSLayoutConstraint:0x7f932584c870 AVButton:0x7f93234d6540.right == UIView:0x7f932585fbc0.right - 14>",
    "<NSLayoutConstraint:0x7f932583bbc0 H:[AVButton:0x7f93258609b0]-(>=15)-[AVLoadingIndicatorView:0x7f93234e5fb0](LTR)>",
    "<NSLayoutConstraint:0x7f932583bc10 AVLoadingIndicatorView:0x7f93234e5fb0.right <= AVButton:0x7f932585e480.left - 15>",
    "<NSLayoutConstraint:0x7f932594aa10 'UIView-Encapsulated-Layout-Width' H:[AVAlphaUpdatingView:0x7f932585e310(0)]>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x7f932583bbc0 H:[AVButton:0x7f93258609b0]-(>=15)-[AVLoadingIndicatorView:0x7f93234e5fb0](LTR)>

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.

Извините за длинный журнал, но все это сразу появляется, включая его. Что мне не хватает? Автоматическая компоновка отлично работает. Даже при вращении. Почему я вижу эти предупреждения?

Добавлен Пример проекта

P.S.: использование Xcode версии 7.0

UPDATE

Отмена Shows Playback Controls в AVPlayerViewController в инспекторе атрибутов исправляет его как-то, и я не вижу никаких предупреждений. Но мне нужны элементы управления. Кажется все более похожим на ошибку.

4b9b3361

Ответ 1

На самом деле, я думаю, что это ошибка на стороне Apple.

Я нашел обходное решение: set showsPlaybackControls к YES после установки AVPlayerViewController.player.

Я изменяю ваш образец со следующими строками, и больше не появляется ошибка Constraint:

@interface ViewController ()

@property(weak, nonatomic) AVPlayerViewController * playerViewController;


@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    NSString *path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"mp4"];
    NSURL *url = [[NSURL alloc] initFileURLWithPath: path];
    AVPlayer * player = [AVPlayer playerWithURL:url];

    self.playerViewController.player = player;
    self.playerViewController.showsPlaybackControls = YES;
}


- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqualToString:@"AVPlayerSegue"]) {
        self.playerViewController = segue.destinationViewController;
    }
}


@end

Обратите внимание, что файл test.mp4 был добавлен в проект.

Ответ 2

Я загрузил ваш код и посмотрел на него. Вы ничего не делаете неправильно. Тот факт, что вы можете снять флажок "Показывает контроль воспроизведения", похоже, указывает на то, что проблема связана с каркасом AVKit. Я даже попытался установить значение false в XIB файл и затем вызвать [self setShowsPlaybackControls:YES]; после viewDidAppear: с теми же результатами. Это определенно ошибка Apple, и вы должны поднять отчет об ошибке.

Ответ 3

В моем случае я разрешаю на iPhone только портретный режим, пока я хочу, чтобы AVPlayerViewController имел все направления.

В AppDelegate У меня есть код, который выглядит так:

public func application(application: UIApplication, supportedInterfaceOrientationsForWindow window: UIWindow?) -> UIInterfaceOrientationMask {

    if self.window?.rootViewController?.presentedViewController is AVPlayerViewController {

        return .All
    }
    return Device.current.contains(.iPhone) ? [.Portrait, .PortraitUpsideDown] : .All
}

Когда AVPlayerViewController представляется модально, повернут в альбом и уволен, я получу очень сложный стек ошибок, который нарушил некоторые ограничения.

Чтобы обходной путь, я добавил этот код в мой RootViewController, который также представляет любой экземпляр AVPlayerViewController в моем приложении:

public override func dismissViewControllerAnimated(flag: Bool, completion: (() -> Void)?) {

    if let playerViewController = self.presentedViewController as? AVPlayerViewController {

        playerViewController.showsPlaybackControls = false
    }

    super.dismissViewControllerAnimated(flag, completion: completion)
}

В основном я поймаю момент, когда пользователь нажимает кнопку увольнения и использует обходное решение, найденное в исходном сообщении вопроса.

Ответ 4

К сожалению, эта ошибка все еще присутствует в ios 10.1. Во всяком случае, я заметил, что если я представлю контроллер вида с установленным значением seekTime равным 0, ошибки не будет. Итак, мое решение состояло в том, чтобы приостановить проигрыватель, сохранить текущее время, искать игрока до 0, представить контроллер и завершить его выполнение: проследите за сохраненным временем и повторите игру.

AVPlayer *player;
AVPlayerViewController *avPlayerController;
CMTime currentTime;

- (void)viewDidLoad {
    [super viewDidLoad];

    NSURL *videoURL = [NSURL URLWithString:@"https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4"];
    player = [AVPlayer playerWithURL:videoURL];
    AVPlayerLayer *playerLayer = [AVPlayerLayer playerLayerWithPlayer:player];
    [self.playerView.layer addSublayer:playerLayer];
    playerLayer.frame = self.playerView.bounds;
    avPlayerController = [[AVPlayerViewController alloc] init];
    avPlayerController.player = player;

}

- (IBAction)fullScreen:(id)sender {
    [player pause];
    currentTime = player.currentTime;
    [player seekToTime:CMTimeMake(0, 1)];

    [self presentViewController:avPlayerController animated:YES completion:^{
        [avPlayerController.player seekToTime:currentTime];
        [avPlayerController.player play];
    }];
}

Ответ 5

Я понял, что это происходит, когда вы пытаетесь представить тот же экземпляр AVPlayerViewController (используя сильное ссылочное свойство) второе, третье... и т.д., а элементы управления проигрывателем не являются reset (т.е. прогресс не в начало).

Индикатор выполнения не в 0:00

Собственно, если вы сталкиваетесь с одним и тем же сценарием, перед тем, как нажать "Готово", попробуйте снова перетащить индикатор выполнения в начало и текущий AVPlayerViewController. Тогда проблема автоматического макета должна исчезнуть!

Так что в основном проблема Autolayout (проблема Apple, кстати) может быть исправлена, если вы reset элементы управления до отклонения AVPlayerViewController. Но что, если вы хотите представить одно и то же видео? В моем случае я хочу сохранить ссылку на AVPlayerItem:

@property (strong, nonatomic) AVPlayerItem *playerItem;

Но я не хочу, чтобы произошел сбой:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'An AVPlayerItem cannot be associated with more than one instance of AVPlayer'
*** First throw call stack:
(0x184035900 0x1836a3f80 0x18a254958 0x18a23fc14 0x100054a2c 0x188d5fe50 0x188d5fdcc 0x188d47a88 0x188d5f6e4 0x188d18294 0x188d58820 0x188d57e1c 0x188d284cc 0x188d26794 0x183fecefc 0x183fec990 0x183fea690 0x183f19680 0x185428088 0x188d90d90 0x1000eea78 0x183aba8b8)
libc++abi.dylib: terminating with uncaught exception of type NSException

Итак, моим обходным решением было создание копии AVPLayerItem каждый раз, когда я нажимаю AVPlayerViewController. Таким образом, проблема с сбоем и автоматическим расставанием исчезнет. Однако при каждом нажатии проигрывателя видеоролик reset.

AVPlayerViewController *playerViewController = [AVPlayerViewController new];
playerViewController.player = [[AVPlayer alloc] initWithPlayerItem:self.playerItem.copy];

Ответ 6

Это предупреждение говорит о том, что вы использовали одно ограничение, которое не нужно было использовать.

ToolBarHeight по умолчанию 44 для всех iphone-устройств здесь вы использовали ограничение высоты для UIToolBar. Таким образом, ограничение высоты панели инструментов здесь дополнительно, удалите это ограничение, предупреждение будет автоматически удалено.