Je suis en train de régler le niveau de zoom d'une caméra par ce code:AVCaptureDevice videoZoomFactor toujours hors de portée
AVCaptureDevice *videoDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
if ([videoDevice lockForConfiguration:nil]) {
float newzoom=1.3;
videoDevice.videoZoomFactor = newzoom;
[videoDevice unlockForConfiguration];
}
Ce code ne fonctionne pas dans ios 7 (cela fonctionne dans ios 9), il provoque toujours une exception:
Terminating app due to uncaught exception 'NSRangeException', reason: 'videoZoomFactor out of range'
Je ne peux pas trouver des informations, mais la plage de zoom ios 7 semble être « de 1 sur 2 ». Mais chaque valeur que j'ai essayé de définir pour le float newzoom cause l'exception ... Comment puis-je faire pour définir le videoZoomFactor dans Ios 7?
EDIT
j'ai décidé de cacher le bouton de zoom lorsque l'appareil ne supporte pas le zoom. Donc, c'est le code que je l'ai utilisé:
AVCaptureDevice *videoDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
float max=videoDevice.activeFormat.videoMaxZoomFactor;
float min=MIN(videoDevice.activeFormat.videoMaxZoomFactor, 4.0f);
if (max==1 && min==1) {
[ZoomButton setHidden:YES];
}
Si max et min sont égaux à 1 signifie que l'appareil ne prend pas en charge ce type de zoom. Cela semble fonctionner ... Il y a une meilleure façon de faire ce contrôle? Je ne trouve pas une liste des périphériques pris en charge dans la documentation ...
j'ai modifié ma question, d'abord mon problème est un problème matériel d'incompatibilité – user31929