मुझे याद है कि आईओएस 3.x दिनों में हमारे पास साधारण एलईडी एपीआई नहीं था। हमें एक पूर्ण वीडियो कैप्चर सत्र शुरू करना था। वैसे यह पता चला है कि iPhone 11 के साथ यह एकमात्र समाधान है। मैं दूसरों के बारे में सुनना पसंद करूँगा जिन्हें इसकी आवश्यकता नहीं है।
यह मेरा परखा हुआ काम है। मैं यहाँ Objective C का उपयोग कर रहा हूँ, Swift का नहीं क्योंकि यही वह है जो मैंने 2009 से इस पुराने ऐप में इस्तेमाल किया था! आप वीडियो कैप्चर शुरू करने के लिए स्विफ्ट कोड आसानी से पा सकते हैं (और आउटपुट को अनदेखा कर सकते हैं, इसे उसी तरह से काम करना चाहिए।
AVCaptureSession* session = [[AVCaptureSession alloc] init];
AVCaptureDevice *inputDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
AVCaptureDeviceInput *deviceInput = [AVCaptureDeviceInput deviceInputWithDevice:inputDevice error:&error];
if ([session canAddInput:deviceInput]) {
[session addInput:deviceInput];
}
AVCaptureVideoPreviewLayer *previewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session];
[previewLayer setVideoGravity:AVLayerVideoGravityResizeAspectFill];
CALayer *rootLayer = self.view.layer;
[rootLayer setMasksToBounds:YES];
CGRect frame = self.view.frame;
[previewLayer setFrame:frame];
[rootLayer insertSublayer:previewLayer atIndex:0];
//This is where you'd save the video with AVCaptureVideoDataOutput but of course we don't.
[session startRunning];
और इसके बाद आप हमेशा की तरह एलईडी शुरू करें:
NSError *error = nil;
if ([inputDevice isTorchModeSupported:AVCaptureTorchModeOn])
[inputDevice setTorchModeOnWithLevel:1.0 error:&error];
यह मेरे iPhone 11 प्रो पर अधिकतम चमक प्राप्त करता है। मैं अब वीडियो कैप्चर का उपयोग किए बिना उसी समाधान की तलाश कर रहा हूं (जो स्पष्ट रूप से बैटरी का उपयोग करता है और एक अनुमति की आवश्यकता होती है, जो उपयोगकर्ताओं को पसंद नहीं हो सकता है। इसे अच्छी तरह से समझाया जाना चाहिए)।