2012-10-31 17 views
5

में अभिविन्यास को बहिष्कृत किया गया है यह लगता है कि avcapturevideopreviewlayer के लिए अभिविन्यास की तरह आईओएस 6 में कमी आई है। किसी को भी नया कोड पता है? यहां मेरा वर्तमान (अवमूल्यन) कोड है:आईओएस 6

[self setPreviewLayer:[[AVCaptureVideoPreviewLayer alloc] initWithSession:[self captureSession]]]; 
[[self previewLayer] setVideoGravity:AVLayerVideoGravityResizeAspectFill]; 
previewLayer.orientation = UIInterfaceOrientationLandscapeRight; 
+0

ओके। ये सही है। लेकिन क्या आपका सवाल था? शायद यह आपकी मदद करेगा: http://stackoverflow.com/questions/12404556/interface-orientation-in-ios-6-0 – NDY

उत्तर

19

क्या आपने प्रलेखन की जांच की? यह केवल एक पंक्ति है:

परत का अभिविन्यास। (आईओएस 6.0 में पदावनत videoOrientation (AVCaptureConnection का उपयोग करें) के बजाय।।)

इसलिए का उपयोग करें:

[[AVCaptureVideoPreviewLayer connection] setVideoOrientation: AVCaptureVideoOrientationLandscapeRight]; 

या

AVCaptureVideoPreviewLayer.connection.videoOrientation= AVCaptureVideoOrientationLandscapeRight; 
+0

कोशिश की। संपत्ति 'VideoOrientation' प्रकार 'AVCaptureVideoPreviewLayer' – Marsman

+0

'ऑब्जेक्ट में नहीं मिली है क्योंकि यह' AVCaptureConnection' में है? तो, 'AVCaptureVideoPreviewLayer' की' कनेक्शन' संपत्ति। –

+0

मैंने आपके लिए एक उदाहरण जोड़ा :) मुझे उम्मीद है कि आपको दिमाग नहीं है @ निकोलई रुहे – Tieme

0

वैसे ही जैसे @Nikolai पोस्ट, AVCaptureVideoPreviewLayer के कनेक्शन के videoOrientation का उपयोग इसके बजाय संपत्ति।

(। कारण मैं फिर से इस पोस्टिंग कर रहा हूँ क्योंकि उसके कोड थोड़ा भ्रमित के बाद से यह लग रहा है connection की तरह एक वर्ग विधि है हो सकता है उम्मीद है कि इस उदाहरण यह स्पष्ट करता है।)

निम्नलिखित बदलें:

AVCaptureVideoPreviewLayer *previewLayer = ...; 
previewLayer.orientation = UIInterfaceOrientationLandscapeRight; 

के साथ:

AVCaptureVideoPreviewLayer *previewLayer = ...; 
previewLayer.connection.videoOrientation = AVCaptureVideoOrientationLandscapeRight; 
3

मैं AVCaptureVideoPr videoOrientation (AVCaptureConnection) पदावनत उन्मुखीकरण के बजाय का उपयोग करने (की कोशिश की eviewLayer), लेकिन यह अब वीडियो पूर्वावलोकन घुमा नहीं है।

AVCaptureVideoPreviewLayer *previewLayer = ...; 
previewLayer.orientation = AVCaptureVideoOrientationLandscapeRight; 
इस के साथ

:

मैं इस प्रतिस्थापित

AVCaptureVideoPreviewLayer *previewLayer = ...; 
previewLayer.connection.videoOrientation = AVCaptureVideoOrientationLandscapeRight; 

लेकिन यह वीडियो पूर्वावलोकन बारी बारी से नहीं किया। समस्या यह थी कि मैंने AVCaptureVideoPreviewLayer को जोड़ा और संशोधित किया इससे पहले कि मैंने AVCaptureDeviceInput को अपने AVCaptureSession में जोड़ा। इसलिए मेरे AVCaptureVideoPreviewLayer का कनेक्शन शून्य था। मेरे AVCaptureSession में AVCaptureDeviceInput को जोड़ने के बाद समाधान AVCaptureVideoPreviewLayer को जोड़ना था।