मुझे नहीं लगता कि समस्या फ्रेम दर से जुड़ा हुआ है। तो मैं आपके ऐप के प्रदर्शन को बेहतर बनाने के लिए कुछ युक्तियों का सुझाव दूंगा:
1) AVCaptureVideoPreviewLayer यह कैलियर का एक उप-वर्ग है जो कैमरे से आउटपुट प्रदर्शित करता है, इसलिए इसकी फ्रेम दर को कैप करना असंभव है।
2) जांचें कि क्या आपने अपनी एनिमेशन को सही जगह पर रखा है, यह इस बात पर निर्भर करता है कि आपके पास किस तरह के एनिमेशन हैं, यदि यह कैलियर है तो एनीमेशन परत आपके मुख्य कैनवास दृश्य परत का एक उपन्यास होना चाहिए (AVCaptureVideoPreviewLayer नहीं !!!), यदि यह UIView है, तो यह आपके मुख्य कैनवास दृश्य का सबव्यूव होना चाहिए।
3) आप सत्र पूर्व निर्धारित सेट करके अपने एप्लिकेशन के प्रदर्शन में सुधार कर सकते हैं:
[captureSession setSessionPreset:AVCaptureSessionPresetLow];
डिफ़ॉल्ट रूप से यह उच्च पर सेट है, तो आप इसे निर्धारित कर सकते हैं जो कुछ भी आप की जरूरत है, यह सिर्फ वीडियो के और अगर एक गुणवत्ता है यह उच्च प्रदर्शन आदर्श नहीं हो सकता है।
4) मैंने अपना स्वयं का टेस्ट ऐप बनाया है, जहां यादृच्छिक एनीमेशन वीडियो पूर्वावलोकन परत ओवरले करता है (लेकिन यह मेरे मुख्य दृश्य का सबव्यूव है !!!) और मेरे पुराने आईपॉड पर भी सब कुछ आसान हो गया, मैं आपको एक कोड दे सकता हूं कब्जा सत्र के प्रारंभ के लिए:)
// Create a capture session
self.captureSession = [AVCaptureSession new];
if([captureSession canSetSessionPreset:AVCaptureSessionPresetHigh]){
[captureSession setSessionPreset:AVCaptureSessionPresetHigh];
}
else{
// HANDLE ERROR
}
// Find a suitable capture device
AVCaptureDevice *cameraDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
// Create and add a device input
NSError *error = nil;
AVCaptureDeviceInput *videoInput = [AVCaptureDeviceInput deviceInputWithDevice:cameraDevice error:&error];
if([captureSession canAddInput:videoInput]){
[captureSession addInput:videoInput];
}
else{
// HANDLE ERROR
}
// Create and add a device still image output
AVCaptureStillImageOutput *stillImageOutput = [AVCaptureStillImageOutput new];
[stillImageOutput addObserver:self forKeyPath:@"capturingStillImage" options:NSKeyValueObservingOptionNew context:AVCaptureStillImageIsCapturingStillImageContext];
if([captureSession canAddOutput:stillImageOutput]){
[captureSession addOutput:stillImageOutput];
}
else{
// HANDLE ERROR
}
// Setting up the preview layer for the camera
AVCaptureVideoPreviewLayer *previewLayer = [AVCaptureVideoPreviewLayer layerWithSession:captureSession];
previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;
previewLayer.frame = self.view.bounds;
// ADDING FINAL VIEW layer TO THE CAMERA CANVAS VIEW sublayer
[self.view.layer addSublayer:previewLayer];
// start the session
[captureSession startRunning];
5 और अंत में, iOS5 में आप न्यूनतम और अधिकतम वीडियो फ्रेम दर निर्धारित कर सकते हैं, क्या आपके ऐप्स का भी के प्रदर्शन में सुधार कर सकते हैं, मुझे लगता है यह है कि तुम क्या कहा है।
http://developer.apple.com/library/mac/#releasenotes/AudioVideo/RN-AVFoundation/_index.html
आशा है कि मेरे इस सवाल का जवाब स्पष्ट था: इस लिंक (न्यूनतम और अधिकतम वीडियो फ्रेम दर सेटिंग) की जाँच करें।
शुभकामनाएं,
Artem
आपके उत्तर के लिए बहुत धन्यवाद, यह एक पुराने सवाल है, लेकिन iOS 5 में योग की खबर बहुत सहायक हैं। – joerick