У меня есть три приложения для камер (которые делают фотоснимки) в магазине приложений, и я получил отзыв о том, что интерфейс UIImagePickerController очень медленный - и я не могу этого отрицать.Итак, чтобы улучшить производительность приложения, я начал экспериментировать с исходным кодом AVCam Demo из WWDC 2010.
Поскольку среда AVFoundation не взаимодействует с UI Kit, я успешно справился с переносомпосмотреть вокруг демо.Я могу успешно переключаться между контроллерами представления.Единственное, что я изменил, - это заменил кнопку «Запись» на кнопку «Выход» (для выхода в контроллер представления обтекания)
Модифицированное приложение отлично работает во время первого сеанса (обертка -> демо). Если я выхожудемонстрацию в оболочку, и вернитесь к демонстрации во второй раз, видеокадр в слое предварительного просмотра останавливается через секунду или две после.Само приложение не зависает - просто видео заморожено.На данный момент все кнопки пользовательского интерфейса активны.Но когда я нажимаю кнопку «Все еще» для захвата изображения, в предупреждении появляется следующая ошибка:
Операция не может быть завершена (ошибка AVFoundationErrorDomain - 11800.)
Это не может бытьдублируется в исходном демонстрационном коде - потому что вы не можете закрыть и снова открыть сеанс.Поэтому мне интересно, имеет ли это какое-либо отношение к тому, как я «выхожу» из сеанса в моем тесте.Вот действие «выход», которое я добавил в демонстрационный код:
- (IBAction)exit:(id)sender
{
[[self captureManager] stopRecording];
[self dismissModalViewControllerAnimated:YES];
}
Достаточно ли этого - или я что-то пропустил?
С уважением, Сэм.