2015-10-22 7 views
8

मेरी प्रोजेक्ट में मैंने व्यू कंट्रोलर बनाया है और वीडियो दिखाने के लिए "एवीप्लेयर व्यू कंट्रोलर" के रूप में एक क्लास बनाया है।AVPlayerViewController - कोई ऑटो लेआउट - एक साथ बाधाओं को संतुष्ट करने में असमर्थ।

कोड काम करता है और मैं वीडियो देखने में सक्षम हूं हालांकि, मुझे कंसोल में कुछ बाधाओं की चेतावनियां मिलती हैं।

मेरी परियोजना ऑटोलाउट के बिना काम कर रही है और मैं ऑटोराइजिंग का उपयोग करता हूं। मैं कोड की कोशिश की है:

self.view.translatesAutoresizingMaskIntoConstraints = false 

लेकिन चेतावनी दूर नहीं जा रहे हैं और स्क्रीन के शीर्ष करने के लिए वीडियो प्लेयर के नियंत्रण।

चेतावनियां हैं:

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. 

कोई आइडिया क्या करना है?

उत्तर

5

इस उत्तर के अनुसार Unable to simultaneously satisfy constraints Warnings with AVPlayerViewController embedded in storyboard समाधान प्लेयर नियंत्रक पर PlayPlayBackControls को सेट करने के लिए प्रतीत होता है और फिर इसे दृश्य में जोड़ता है।

एक बार आपके पास एवीप्लेयर आइटम हो जाने के बाद, आप प्लेयर नियंत्रण फिर से दिखा सकते हैं (माना जाता है कि आपको उनकी आवश्यकता है)।

मुझे संदेह है कि प्लेयर नियंत्रण बाधाओं को ठीक से संतुष्ट करने के लिए एक वैध AVPlayer आइटम की आवश्यकता है।

मेरे पास यह वही समस्या थी और यह परिवर्तन करके इसे ठीक करने में कामयाब रहा। सौभाग्य!

0

आश्चर्यजनक रूप से पर्याप्त, आप जो करते हैं वह आपके मुख्य दृश्य के तहत दूसरा दृश्य बनाता है, और उसके बाद अपने प्लेयर दृश्य को उस सबव्यू के रूप में जोड़ें।

इस समस्या ने मुझे एक महीने पहले हल करने के लिए एक पूरा दिन लिया, और इस तरह यह हल हो गया। आपको किसी भी कोड को हटाना होगा जो स्वचालित रूप से बाधाओं का आकार बदलता है।

+0

@Jamesh मैंने एक suvView जोड़ने और प्लेयर के अंदर जोड़ने के साथ प्रयास किया है लेकिन त्रुटि समान प्रतीत होती है। मैं xcode 8.2 और आईओएस 10 का उपयोग कर रहा हूं किसी भी मदद की सराहना की जाएगी। –

+0

आपको यह साबित करना होगा कि नमूना कोड पोस्ट करके आप क्या कर रहे हैं। –

0

यदि आप अपने दृश्य नियंत्रक के लिए प्रोग्रामेटिक रूप से दृश्य बना रहे हैं, तो AVDlayerViewController को एक बच्चे दृश्य नियंत्रक के रूप में जोड़ें और viewDiewLoad() के बजाय loadView() विधि में एक उपदृश्य के रूप में देखें। प्लेबैक नियंत्रण छिपाने की कोई ज़रूरत नहीं है।

संबंधित मुद्दे