iOS: iPhone 11 Pro'da el feneri seviyesi


10

kullanıyorum AVCaptureDevice.setTorchModeOn(level)Değişken parlaklıkta feneri açmak için yöntem .

Eski iPhone SE üzerinde düzgün şekilde çalışıyorsa - Değişmeye gibi ben açıkça 4 farklı parlaklık düzeyi görebilirsiniz levelgelen 0etmek1 .

Ancak iPhone 11 Pro'da el feneri sadece seviye olduğunda yanar 1.0! Ve maksimum seviyeden uzaksa parlaklık (Kontrol Merkezinden el feneri ile karşılaştırıldığında).

maxAvailableTorchLevelSabit kullanmayı denedim , ancak sonuçlar kullanmakla aynı 1.0.
Ayrıca denenmiş değerler daha fazla 1.0- bu durum istisnayla sonuçlanır (beklendiği gibi).

Bu problemi olan var mı? Belki bazı çözümler var?


1
Herhangi bir güncelleme var mı ? Bu sorunla ilgili raporlar alıyorum, bu yüzden acil bir iPhone 11 Pro satın alma eşiğinde olduğum için: /
blackjack75

Henüz maalesef değil. Belki Apple bazı güncellemelerde düzeltir… Sadece iPhone 11 Pro'da mı yoksa tüm yeni telefonlarda mı olduğunu biliyor musunuz?
Pavel Alexeev

İPhone 11'in etkilenip etkilenmediğinden henüz emin değilim. Yalnızca iPhone 11 pro kullanıcılarının şikayetleri vardı. Bazı kör düzeltmeleri denedim, daha fazla ifade vb. İşledim, ancak henüz cihazım olmadığından yardımcı olup olmadığını bilmiyorum. Gerçek cihazınız varsa, burada 1.81 sürümünü kontrol edebilir ve yardımcı olup olmadığını görebilir misiniz? Kullanıcıların bana ilk başlangıçta çalıştığını söyledikten sonra parlaklık değişikliğinde başarısız oldum ve loş oldum, belki de bir çözüm var. i.smte.ch/ledflashfree
blackjack75

torçu ayarlamadan önce lockForConfiguration () ve unlockForConfiguration () öğelerini çağırıyor musunuz? developer.apple.com/documentation/avfoundation/avcapturedevice/…
antonio yaphiar

@antonioyaphiar, eminim yaparım!
Pavel Alexeev

Yanıtlar:


1

İOS 3.x günlerinde basit bir LED API'ye sahip olmadığımızı hatırladım. Tam bir video yakalama oturumu başlatmamız gerekiyordu. Görünüşe göre iPhone 11 ile bu tek çözüm gibi görünüyor. Bunu gerektirmeyen başkalarını duymak isterim.

Bu benim test edilmiş geçici çözümüm. Burada Objective C kullanıyorum, Swift değil çünkü 2009'dan bu eski uygulamada kullandığım şey bu! Video çekimini başlatmak için Swift kodunu kolayca bulabilirsiniz (ve çıkışı yok sayın, aynı şekilde çalışmalıdır.

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];

Ve bundan sonra LED'i her zamanki gibi başlatırsınız:

NSError *error = nil;

if ([inputDevice isTorchModeSupported:AVCaptureTorchModeOn])
[inputDevice setTorchModeOnWithLevel:1.0 error:&error];

Bu, iPhone 11 Pro'mda maksimum parlaklık sağlıyor. Şimdi video yakalama kullanmak zorunda kalmadan aynı çözümü arıyorum (ki açıkça pil kullanır VE kullanıcıların hoşuna gidecek bir izin gerektirir. İyi açıklanması gerekir).


-1

MaxAvailableTorchLevel belgelerine göre

Bu sabit, şu anda cihaz tarafından desteklenen gerçek maksimum değerden bağımsız olarak daima mevcut maksimum torç seviyesini temsil eder.

Bu sabit daima mevcut maksimum torç seviyesini temsil ediyorsa, sadece farklı cihazların mevcut maksimum maksimum seviyelere sahip olduğunu değil, aynı zamanda bahsettiğiniz cihazın 1,0'dan daha yüksek olamayacağını da çıkarırız.

Şimdi yapabileceğiniz en iyi şey Apple'ın geliştirici desteğine ulaşmaktır .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.