Метод, который вы используете, действительно очень медленный. Вместо этого используйте метод, найденный в этой ссылке Stackoverflow.
Фактический код включения / выключения:
[self.myDevice lockForConfiguration:nil];
[self.myDevice setTorchMode:AVCaptureTorchModeOn];
[self.myDevice setFlashMode:AVCaptureFlashModeOn];
[self.myDevice unlockForConfiguration];
Но убедитесь, что myDevice
инициализирован (см. Ссылку)
Реализуйте его с помощью NStimer
, чтобы создать длину вспышки любой длины.
EDIT:
Извините, я предположил, что вы пытаетесь собрать введенный азбукой Морзе код, а затем указываете вспышке переключаться между NSTimer
.
Попробуйте использовать NSTimer
или переведите нить в спящий режим, чтобы увеличить время между интервалами мигания. Возможно, он выполняется слишком быстро для фактического флэш-компонента. Попробуйте это на метод SOS для простоты тестирования.