আইওএস 8 এমন একটি ভিউ স্ন্যাপশট করা যা খালি স্ন্যাপশটের ফলাফল দেয় না


228

আইওএস 8-তে আমি এখন পর্যন্ত ক্যামেরা থেকে ছবিগুলি ক্যাপচার করতে সমস্যায় পড়ছি আমি এই কোডটি এর জন্য ব্যবহার করছি

UIImagePickerController *controller=[[UIImagePickerController alloc] init];
controller.videoQuality=UIImagePickerControllerQualityTypeMedium;
controller.delegate=(id)self;
controller.sourceType=UIImagePickerControllerSourceTypeCamera;
[self presentViewController:controller animated:YES completion:nil];

তবে আইওএস 8 এ আমি এটি পেয়ে যাচ্ছি:

Snapshotting a view that has not been rendered results in an empty snapshot. Ensure your view has been rendered at least once before snapshotting or snapshot after screen updates.

আমি এই পোস্টে প্রদত্ত সমাধানটি দিয়ে চেষ্টা করেছি দিয়ে

@property (strong,nonatomic)UIImagePickerController *controller;

_controller=[[UIImagePickerController alloc] init];
_controller.videoQuality=UIImagePickerControllerQualityTypeMedium;
_controller.delegate=(id)self;
_controller.sourceType=UIImagePickerControllerSourceTypeCamera;
_[self presentViewController:controller animated:YES completion:nil];

এবং এই

...
controller.modalPresentationStyle=UIModalPresentationFullScreen;
or
controller.modalPresentationStyle=UIModalPresentationCurrentContext;
...

এবং এই

double delayInSeconds = 0.1;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
    [self presentViewController:controller animated:YES completion:nil];
});

এবং এই

[self presentViewController:controller animated:YES completion:NULL];

এবং এই

[self presentViewController:controller animated:YES completion:^{

}];

কোন ধারণা?


3
একই সমস্যা রয়েছে এবং আরও আরও এই বাগটি আমার অ্যাপ্লিকেশনকে বার বার ক্র্যাশ করে। আশা করি আপডেট 8.0.2 এই বাগটি ঠিক করবে। আমি যখন আইওএস 7 এ আমার অ্যাপ্লিকেশনটি চালিত করি তখন এটি কোনও মূর্খ সতর্কতা ছাড়াই কবজির মতো কাজ করে। দেখে মনে হচ্ছে আইওএস 8 এর স্থায়িত্বের দীর্ঘ পথ রয়েছে।
NCFUSN

9
8.0.2 আপডেট সহ
ইভেন্টটি

2
আমি একই সমস্যা ছিল। আমি ছবি তোলার পরে, আমি অন্য থ্রেডে কিছু প্রক্রিয়াকরণ করছি। আমি কোডটি মূল থ্রেডে সরানোর পরে সমস্ত কিছু ঠিক আছে। অর্থাৎ, আমার কোডটি আগে ছিল: dispatch_async(dispatch_get_main_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{যা আমি পরিবর্তিত হয়েছিলdispatch_async(dispatch_get_main_queue(), ^{
mikeyq6

9
আইওএস 8.1 এ একই সমস্যা ঘটে
র‌্যাপ্টর

12
আইওএস 9 তেও ঘটে।
Sebyddd

উত্তর:


131

আমি নিশ্চিত যে এটি আইওএস 8.0-এ কেবল একটি বাগ g এটি UIImagePickerControllerসর্বোপরি POC অ্যাপ্লিকেশনগুলির সাথে পুনরুত্পাদনযোগ্য যা আপনি উপরে করছেন এমন উপস্থাপনের প্রচেষ্টা ছাড়া আর কিছুই করে না । তদুপরি, আমার জ্ঞান অনুযায়ী চিত্র চয়নকারী / ক্যামেরা প্রদর্শন করার বিকল্প বিকল্প নেই। এমনকি অ্যাপলের ইউআইআইমেজপিকারকন্ট্রোলার নমুনা অ্যাপ্লিকেশনটি ডাউনলোড করতে পারেন , এটি চালান এবং এটি বাক্সের বাইরে একই ত্রুটি তৈরি করবে।

এটি বলেছিল, কার্যকারিতা এখনও আমার পক্ষে কাজ করে। সতর্কতা / ত্রুটি ব্যতীত, আপনার অ্যাপটির কার্যকারিতা নিয়ে কী সমস্যা আছে?


2
হ্যাঁ সম্ভবত এটি একটি বাগ, কোডটি আমার জন্যও ভাল কাজ করছে।
souvickcse

4
@ Sauvickcse আমিও এই ত্রুটির মুখোমুখি হয়েছি। যখনই এটি ঘটে, একবার নতুন ছবি তোলা হলে চিত্রের পূর্বরূপটি পুরোপুরি কালো। তবে, স্ক্রিনের নীচে "রি-টেক" এবং "ফটো ব্যবহার করুন" বোতামগুলি এখনও উপস্থিত হয় এবং সঠিকভাবে কাজ করে। আপনি কি এই একই আচরণ প্রত্যক্ষ করছেন?
ব্যারি বেরম্যান 15

3
@ সৌভিক্সে আমি এখানে অবস্থিত সর্বশেষ ফোনগ্যাপ ক্যামেরা প্লাগইন বেসলাইনটি ব্যবহার করছি: github.com/apache/cordova-plugin-camera । আইওএস 5 এ চলমান আইওএস 7.1 দিয়ে সবকিছু ঠিকঠাক কাজ করে তবে আইফোন 6 এ আইওএস 8 ব্যবহার করে এটি সঠিকভাবে কাজ করার কোনও উপায় খুঁজে পাচ্ছি না
ব্যারি বেরম্যান

2
আইওএস 8.1 ফাইনালটি আমার জন্য একই
fvisticot

4
এখনও আইওএস 9

45

আমি বেশ কয়েক ঘন্টা এই সমস্যা নিয়ে লড়াই করে যাচ্ছিলাম, আমি প্রতিটি প্রাসঙ্গিক বিষয় পড়েছি এবং জানতে পেরেছি যে ত্রুটিটি হয়েছিল কারণ আমার ডিভাইসের গোপনীয়তা সেটিংসের অধীনে আমার অ্যাপটিতে ক্যামেরার অ্যাক্সেস অবরুদ্ধ ছিল !!! আমি কখনই ক্যামেরায় অ্যাক্সেস অস্বীকার করি নি এবং জানি না এটি কীভাবে অবরুদ্ধ হয়েছিল তবে সমস্যাটি ছিল!


4
আমি নিশ্চিত না যে এটি আসলে আপনার পক্ষে কাজ করেছিল কিনা, তবে এটি আমার পক্ষে কার্যকর হয়নি। আমি কেবল আশা করি যে @ কেভিনএইচ সঠিক is
দীপক ঠাকুর

4
নাহ, আমার ক্ষেত্রে সেই অ্যাপ্লিকেশানের জন্য ক্যামেরা অ্যাক্সেসটি চেক করা আছে। তবে আমি বিশ্বাস করি যে এটি পরোক্ষভাবে সেটিংসের কারণে ঘটতে পারে: সেটিংসে পরিবর্তনগুলি কখনও কখনও তাত্ক্ষণিকভাবে কার্যকর হয় না,
কাপার্টিনোতে থাকা কোনও ব্যক্তিকে অবশ্যই

এই পরামর্শটি আমার জন্য সমস্যাটি সমাধান করেছে। আমার অ্যাপটিতে ক্যামেরা নির্বাচনকারী উপস্থিত হওয়ার আগে আমি "অনুমতি দেই না" স্পর্শ করেছি। আমি ভেবেছিলাম প্রত্যেকবার ক্যামেরাটি অ্যাক্সেস করলেই এটি আমাকে জিজ্ঞাসা করবে, কিন্তু তা হয়নি। আমাকে সেটিংস> গোপনীয়তা> ক্যামেরায় যেতে হয়েছিল এবং আমার অ্যাপ্লিকেশনটির জন্য স্লাইডারটি চালু করতে হয়েছিল। তারপরে এটি সঠিকভাবে কাজ করেছিল। প্রতিটি সময় জিজ্ঞাসা না করার জন্য অ্যাপলের পক্ষ থেকে বাছাই করা নিখুঁত মনে হচ্ছে ...
জন কনটারিনো

ঠিক কখনও কখনও, আমরা ভুল এই ধরণের জন্য উত্থাপিত সমস্যা চিন্তা করতে পারি না। thx বন্ধুটি খুব সহায়ক
জনাব জাভেদ মুলতানি

সক্ষমতা সক্রিয় কিনা তা সনাক্ত করার জন্য ক্যামেরাটি ব্যবহার করার আগে সেরা বিকল্পটি হ'ল এবং যদি তা না হয় তবে ব্যবহারকারীকে সতর্ক করুন যে সেটিংসে ক্যামেরাটি সক্রিয় না করা পর্যন্ত ছবি তোলা পাওয়া যায় না। আইওএস 10-তে, ব্যবহারকারীকে নির্দিষ্ট অ্যাপ্লিকেশন সেটিংসে প্রেরণ করা সম্ভব (আইওএস 8 এর আগে সম্ভব ছিল, তবে আইওএস 8 এবং 9-তে সম্ভব নয়, যদি আমি সঠিকভাবে স্মরণ করি তবে)।
কিনাদিয়ান

33

উপরে @ গ্রেগের উত্তর সম্পর্কে মন্তব্য করার মতো পর্যাপ্ত খ্যাতি পয়েন্ট আমার নেই, সুতরাং এখানে আমার পর্যবেক্ষণগুলি যুক্ত করা হবে। আমার আইপ্যাড এবং আইফোন উভয়ের জন্য একটি সুইফ্ট প্রকল্প রয়েছে। আমার প্রধান ভিউ কন্ট্রোলারের ভিতরে আমার একটি পদ্ধতি রয়েছে (নীচে প্রাসঙ্গিক)। আমি যখন ফোনে এটি পরীক্ষা করি তখন সবকিছু ঠিকঠাকভাবে কাজ করে এবং কোনও সতর্কতা উত্পন্ন হয় না। আমি যখন এটি কোনও আইপ্যাডে চালিত করি, সবকিছু ঠিকঠাকভাবে কাজ করে তবে আমি দৃশ্যটি স্ন্যাপশ্যাটিং সম্পর্কে সতর্কতাটি দেখি। তবে মজার বিষয় হ'ল আমি যখন পপওভার নিয়ামকটি ব্যবহার না করে কোনও আইপ্যাডে চালিত করি তখন কোনও সতর্কতা না দিয়ে সবকিছু ঠিকঠাকভাবে কাজ করে। দুর্ভাগ্যক্রমে, অ্যাপল আদেশ দেয় যে চিত্র পিকরটি অবশ্যই আইপ্যাডের একটি পপওভারের মধ্যে ব্যবহার করা উচিত, যদি ক্যামেরাটি ব্যবহার না করা হয়।

    dispatch_async(dispatch_get_main_queue(), {
        let imagePicker: UIImagePickerController = UIImagePickerController();
        imagePicker.sourceType = UIImagePickerControllerSourceType.SavedPhotosAlbum;
        imagePicker.mediaTypes = [kUTTypeImage];
        imagePicker.allowsEditing = false;
        imagePicker.delegate = self;

        if(UIDevice.currentDevice().userInterfaceIdiom == .Pad){ // on a tablet, the image picker is supposed to be in a popover
            let popRect: CGRect = buttonRect;
            let popover: UIPopoverController = UIPopoverController(contentViewController: imagePicker);
            popover.presentPopoverFromRect(popRect, inView: self.view, permittedArrowDirections: UIPopoverArrowDirection.Up, animated: true);
        }else{
            self.presentViewController(imagePicker, animated: true, completion: nil);
        }
    });

দেখে মনে হচ্ছে এটি একটি সঠিক পরামর্শ কারণ আইওএস 9.0.2 এর সাথেও আমার ত্রুটি বার্তাটি রয়েছে। আমার কাছে আইফোন কেবলমাত্র অ্যাপ্লিকেশন রয়েছে এবং আমি যখন এটিকে আমার আইপ্যাড মিনিতে চালিত করি তখন চিত্র চয়নকারী উপস্থাপন করার সময় আমি সেই বার্তাটি দেখতে পাই। কোনও কারণে আইওএস মনে করে যে আমি আইপ্যাড অ্যাপটি চালাই।
জন ট্রেসিড

16

আমি ইউআইআইজেজপিকার কনট্রোলার উপস্থিতি ভিউকন্ট্রোলারকে কল করার পরে এটিতে ছুটে এসেছি: কলব্যাক থেকে কোনও ইউআইএলআর্টভিউ প্রতিনিধি হিসাবে। আমি উপস্থিত ভিউকন্ট্রোলারটিকে চাপ দিয়ে সমস্যাটি সমাধান করেছি: প্রেরণ_অ্যাসিঙ্ক ব্যবহার করে বর্তমান নির্বাহের ট্রেসটি কল করে।

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{
    dispatch_async(dispatch_get_main_queue(), ^{
        UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
        imagePickerController.delegate = self;

        if (buttonIndex == 1)
            imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
        else
            imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;

        [self presentViewController: imagePickerController
                           animated: YES
                         completion: nil];
    });
}

এটিই আমার জন্য সমাধান করেছে। আমি একটি ইউআইএলআর্টএ্যাকশন এর অ্যাকশন ব্লকের ভিতরে থেকে ইউআইআইজেজপিকার কনট্রোলার উপস্থাপন করার চেষ্টা করছিলাম।
জোসেফড্লেঞ্জ

সতর্কতা ভিউ অবহেলা করা হয়েছে, আমি যদি এর পরিবর্তে কোনও ইউআইএলআর্টভিউ কনট্রোলার অ্যাকশনটির ভিতরে অ্যাসিঙ্কটি ব্যবহার করি তবে এটি কি কাজ করবে?
DrPatience

পুনঃটুইট dispatch_async আপনার ইচ্ছা যেখানেই কাজ করে। আমি জানি না যে এটি প্রয়োজনীয় (আপনার কোড নির্ভর করবে)। জিসিডি পড়ুন - এর দুর্দান্ত ব্যবহার রয়েছে।
গ্রেগ

12

কিছু ভিউ অ্যানিমেট করার সময় আমার এই সমস্যাটি ছিল এবং অ্যাপটি ব্যাকগ্রাউন্ড মোডে গিয়ে ফিরে আসত। আমি এটিএ্যাকটিভ একটি পতাকা সেট করে এটি পরিচালনা করেছি। আমি এটিকে NO এ সেট করেছিলাম

- (void)applicationWillResignActive:(UIApplication *)application

এবং হ্যাঁ

- (void)applicationDidBecomeActive:(UIApplication *)application

এবং সেই অনুসারে আমার মতামত সঞ্চারিত করুন বা না করুন। ইস্যুটি যত্ন নিয়েছে।


11

আমার কাছে এটি ছিল একটি ইউআইএলআরল্টকন্ট্রোলার স্টিল অ্যাকশনশীট ব্যবহারকারীকে ক্যামেরা সহ একটি ছবি তোলার বা লাইব্রেরি থেকে একটি ব্যবহার করার বিকল্প দিয়ে।

আমি ত্রুটির বার্তায় একটি প্রতীকী ব্রেকপয়েন্ট চেষ্টা করেছি এখানে চিত্র বর্ণনা লিখুন

এটি আমাকে দেখিয়েছিল যে ত্রুটিটি উপস্থাপনের সময় কোনও ইউআইকোলিকেশনভিউয়ের অভ্যন্তরীণ ব্যবহার দ্বারা উত্পাদিত হয়েছিল

[self presentViewController:alert animated:YES completion:nil];

এখানে চিত্র বর্ণনা লিখুন

উপস্থাপনের আগে ফ্রেমটি সেট করেই আমি এটিকে ঠিক করেছি

[alert setPreferredContentSize: alert.view.frame.size];

এখানে সম্পূর্ণ মিথোড যা ত্রুটি ছাড়াই কাজ করছে

-(void)showImageSourceAlertFromSender:(id)sender{
UIButton *senderButton = (UIButton*)sender;
UIAlertController *alert = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet];
UIAlertAction *cameraAction = [UIAlertAction actionWithTitle:@"Camera" style:UIAlertActionStyleDefault
                                                     handler:^(UIAlertAction *action) {
                                                         [self takePhoto];
                                                     }];
UIAlertAction *libraryAction = [UIAlertAction actionWithTitle:@"Library" style:UIAlertActionStyleDefault
                                                      handler:^(UIAlertAction *action) {
                                                          [self selectPhotoFromLibraryFromSender:sender];
                                                      }];
[alert addAction:cameraAction];
[alert addAction:libraryAction];
alert.popoverPresentationController.delegate = self;
alert.popoverPresentationController.sourceRect = senderButton.frame;
alert.popoverPresentationController.sourceView = self.view;

[alert setPreferredContentSize: alert.view.frame.size];

[self presentViewController:alert animated:YES completion:^(){
}];}

10

viewভিউ কন্ট্রোলার উপস্থাপনের আগে আপনি সম্পত্তিটি উল্লেখ করে "একটি দৃশ্য স্ন্যাপশ্যাটিং" সতর্কতাটি নীরব করতে পারেন । এটি করার ফলে দৃশ্যটি লোড হয়ে যায় এবং স্ন্যাপশট নেওয়ার আগে আইওএসকে এটি সরবরাহ করতে দেয়।

UIAlertController *controller = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet];
controller.modalPresentationStyle = UIModalPresentationPopover;
controller.popoverPresentationController.barButtonItem = (UIBarButtonItem *)sender;

... setup the UIAlertController ... 

[controller view]; // <--- Add to silence the warning.

[self presentViewController:controller animated:YES completion:nil];

এটি একটি প্রায় অবিশ্বাস্যভাবে দরকারী টিপ। ধন্যবাদ!!!! (আমার ক্ষেত্রে, আমি এখনও সতর্কতা পেয়েছি, কিন্তু অ্যাপটি আর ক্র্যাশ হবে না))
ফ্যাটি

যাইহোক, আমি যখন একটি যুক্ত করি cameraOverlayView, দুর্ভাগ্যক্রমে আমি এখনও এই টিপটি প্রয়োগ করার পরেও এই সমস্যাটি পাই।
ফ্যাটি

8

চিত্র ক্যাপচারের পরে যে কেউ ব্ল্যাক প্রিভিউ সহ সমস্যা দেখছে, ইউআইপিকারকন্ট্রোলারের দেখানোর পরে স্ট্যাটাস বারটি লুকিয়ে রাখার বিষয়টি মনে হচ্ছে বলে মনে হচ্ছে।

UIImagePickerControllerSourceType source = [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera] ? UIImagePickerControllerSourceTypeCamera : UIImagePickerControllerSourceTypeSavedPhotosAlbum;
UIImagePickerController *cameraController = [[UIImagePickerController alloc] init];
        cameraController.delegate = self;
        cameraController.sourceType = source;
        cameraController.allowsEditing = YES;
        [self presentViewController:cameraController animated:YES completion:^{
            //iOS 8 bug.  the status bar will sometimes not be hidden after the camera is displayed, which causes the preview after an image is captured to be black
            if (source == UIImagePickerControllerSourceTypeCamera) {
                [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
            }
        }];

1
! সম্পূর্ণভাবে আমার দিন সংরক্ষিত আমি কেউ worked.and এই কাজ উপরের পদ্ধতিগুলি চেষ্টা করেছি
স্ট্যান

সমাধান কাজ করছে না। আমি মনে করি যখন আমরা তখন কোনও চিত্র ক্যাপচার করি তখনই ইতিমধ্যে লুকানো স্ট্যাটাসবার।
মিহির ওজা

5

আমি একই সমস্যা খুঁজে পেয়েছি এবং সবকিছু চেষ্টা করেছি tried আমার দুটি ভিন্ন অ্যাপ রয়েছে, একটি উদ্দেশ্য-সি এবং একটি দ্রুত - উভয়েরই একই সমস্যা। ত্রুটি বার্তাটি ডিবাগারে আসে এবং স্ক্রিনটি প্রথম ছবির পরে কালো হয়। এটি কেবল আইওএস> = 8.0 এ ঘটে, স্পষ্টতই এটি একটি বাগ।

আমি একটি কঠিন কাজ খুঁজে পেয়েছি। ইমেজপিকার, ক্যামেরা কন্ট্রোলস = মিথ্যা দিয়ে ক্যামেরা নিয়ন্ত্রণ বন্ধ করুন এবং আপনার নিজস্ব ওভারলেভিউ তৈরি করুন যাতে অনুপস্থিত বোতাম রয়েছে। এটি করার জন্য বিভিন্ন টিউটোরিয়াল রয়েছে utorial অদ্ভুত ত্রুটি বার্তাটি থেকে যায়, তবে কমপক্ষে স্ক্রিনটি কালো হয় না এবং আপনার একটি কার্যকরী অ্যাপ্লিকেশন রয়েছে।


আপনার ঠিক আমার মতোই সমস্যা ছিল, নীচে আমার উত্তরটি দেখুন।
ড্যান

5

এটি বিল্ট-ইন ইমেজপিকারকন্ট্রোলারের একটি বাগ হতে পারে। আমার কোডটি কাজ করছে তবে মাঝে মাঝে আইফোন 6 প্লাসে ক্রাশ হয়।

আমি অন্যান্য উত্তর দ্বারা প্রস্তাবিত সমস্ত সমাধান চেষ্টা করেছি কিন্তু ভাগ্য ছিল না। জেপিএসআইমেজপিকারকন্ট্রোলারে স্যুইচ করার পরে অবশেষে সমস্যার সমাধান হয়েছে ।


3

আমি সবকিছু চেষ্টা করেছি, আমার সমস্যাটি হ'ল যে ক্যামেরা এবং ফটো লাইব্রেরির চিত্র চয়নকারী তারা দেখানোর সাথে সাথে অদৃশ্য হয়ে গেল। আমি নিম্নলিখিত লাইন দিয়ে এটি সমাধান (দ্রুত)

imagePicker.modalPresentationStyle = UIModalPresentationStyle.OverCurrentContext

3

আমি নিশ্চিত যে এটি আইওএস 8.0-এ কেবল একটি বাগ g এটি সর্বোপরি POC অ্যাপ্লিকেশনগুলির সাথে পুনরুত্পাদনযোগ্য যা আপনি উপরের মতো করে UIImagePickerController উপস্থাপনের প্রচেষ্টা ছাড়া আর কিছুই করেন না। তদুপরি, আমার জ্ঞান অনুযায়ী চিত্র চয়নকারী / ক্যামেরা প্রদর্শন করার বিকল্প বিকল্প নেই। এমনকি আপনি অ্যাপলের ইউআইআইজেইপস পিকারকন্ট্রোলার নমুনা অ্যাপ্লিকেশনটি ডাউনলোড করতে পারেন, এটি চালান এবং এটি বাক্সের বাইরে একই ত্রুটি তৈরি করবে।

এটি বলেছিল, কার্যকারিতা এখনও আমার পক্ষে কাজ করে। সতর্কতা / ত্রুটি ব্যতীত, আপনার অ্যাপটির কার্যকারিতা নিয়ে কী সমস্যা আছে?


3

আমরা যদি ব্যবহার করছি UIImagePickerController সম্পত্তি হিসাবে তবে এই সতর্কতাটি অদৃশ্য হয়ে যাবে।ধরুন যে আমরা কোনও ফাংশনটির মধ্যে UIImagePickerControllerইনস্ট্যান্ট করে দিচ্ছি, আমরা ফলাফলটি ব্যবহার করছি না UIImagePickerController


2

এই পদ্ধতিটি কল করা আমার পক্ষে কাজ করেছিল। আপনার দৃষ্টিভঙ্গি উপস্থাপনের পরে এটি রাখুন।

[yourViewBeingPresented.view layoutIfNeeded];

1

আমিও একই সমস্যাটির মুখোমুখি হয়েছি এবং ক্যামেরাটি পাওয়া যায় কিনা তা পরীক্ষা করে সমাধান করেছি:

BOOL cameraAvailableFlag = [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera];
    if (cameraAvailableFlag)
        [self performSelector:@selector(showcamera) withObject:nil afterDelay:0.3];

1
আমি আমার অ্যাপ্লিকেশনটির জন্য ক্যামেরায় অ্যাক্সেস প্রত্যাখ্যান করলেও ইসসোর্সটাইপআলভ্যালেবলটি সত্য ফিরে আসে। ক্যামেরা অ্যাক্সেস অস্বীকার করা হলে প্রদর্শনটি ফাঁকা।
Καrτhικ

1

আমি এই বিষয়টি নিয়ে এসেছি। আমরা যখন ক্যামেরা কল করি এবং প্রকাশিত করি তখন এই সমস্যাটি প্রকাশিত হয়েছে। উদাহরণস্বরূপ কোনও ক্যামেরাটিকে কল করুন এবং ভিউডিল্ড ডিসপায়ার পদ্ধতিতে ভিউ শূন্য সেট করুন কারণ এই ত্রুটিটি আসবে কারণ ক্যামেরা ইভেন্টের জন্য কলব্যাক নেই। এই ত্রুটির জন্য এই কেসটি সম্পর্কেও নিশ্চিত হন।


1

আমি একই বাগ পেয়েছি, ক্যামেরা খোলার সময় কনসোলে বেলো বার্তা পেয়েছি।

'এমন একটি দৃশ্য স্ন্যাপশ্যাটিং যা খালি স্ন্যাপশটের ফলাফল দেয় নি। আপনার ভিউ স্ক্রিন আপডেটের পরে স্ন্যাপশ্যাটিং বা স্ন্যাপশটের আগে একবার অন্তর্ভুক্ত হয়েছে তা নিশ্চিত করুন। '

আমার জন্য সমস্যা ছিল ইনফো.পুলিস্ট ফাইলের বান্ডিল প্রদর্শনের নামটির সাথে কিছুটা ফাঁকা ছিল, আমি আমার অ্যাপ্লিকেশনটির নামটি সেখানে রেখেছি এবং এখন এটি ঠিকঠাক কাজ করছে empty খালি বান্ডিল প্রদর্শনের নামের কারণে কোনও ক্যামেরা অনুমতি সতর্কতা পেলাম না it রেন্ডারিং থেকে ভিউ অবরুদ্ধ করেছে।

সমস্যাটি দেখার সাথে ছিল না তবে অনুমতি ব্যতীত উপস্থাপনের মাধ্যমে settings আপনি সেটিংস -> গোপনীয়তা -> ক্যামেরায় এটি পরীক্ষা করতে পারেন, যদি আপনার অ্যাপ্লিকেশন তালিকাভুক্ত না থাকে তবে সমস্যাটি একই হতে পারে।


1

আমি ফোনগ্যাপ ব্যবহার করছি, তবে ত্রুটি বার্তাটি সম্পর্কে গুগলিং করার সময় এই থ্রেডটি প্রথম হিসাবে আসে।

আমার জন্য এই সমস্যাটি পিএনজিতে চিত্রের সংজ্ঞা দিয়ে চলে গেল।

encodingType : Camera.EncodingType.PNG

সুতরাং পুরো লাইন হচ্ছে:

 navigator.camera.getPicture(successFunction, failFunction, { encodingType : Camera.EncodingType.PNG, correctOrientation:true, sourceType : Camera.PictureSourceType    .PHOTOLIBRARY, quality: 70, allowEdit : false , destinationType: Camera.DestinationType.DATA_URL});

আপনার মাইলেজ পরিবর্তিত হতে পারে, কিন্তু এটি আমার জন্য কৌশলটি করেছিল।


1

বিকল্পভাবে, ব্যবহার বিবেচনা করুন drawViewHierarchyInRect:

সুইফট:

extension UIImage{

    class func renderUIViewToImage(viewToBeRendered: UIView) -> UIImage
    {
        UIGraphicsBeginImageContextWithOptions(viewToBeRendered.bounds.size, true, 0.0)
        viewToBeRendered.drawViewHierarchyInRect(viewToBeRendered.bounds, afterScreenUpdates: true)
        viewToBeRendered.layer.renderInContext(UIGraphicsGetCurrentContext()!)

        let finalImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()

        return finalImage
    }
}

উদ্দেশ্য গ:

- (UIImage *)snapshot:(UIView *)view
{
    UIGraphicsBeginImageContextWithOptions(view.bounds.size, YES, 0);
    [view drawViewHierarchyInRect:view.bounds afterScreenUpdates:YES];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return image;
}

আরও দেখুন:


0

আমার ক্ষেত্রে (এক্সকোড 7 এবং আইওএস 9), আমি UINavigationController"লুকানো" ব্যবহার করি , তাই UINavigationControllerDelegateক্যামেরা বা রোল উপস্থাপন করার জন্য আইহ্যাভকে যুক্ত করুন এবং এটি যেমন কাজ করা ঠিক তেমন কাজ করে! And pickerControllerDelegate.selfত্রুটিও প্রদর্শন করে না!

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.