ipad UIImagePickerController videoQuality

Я пытаюсь установить качество видео для UIImagePickerController, но сейчас вижу что-то действительно странное. Влияние на качество видео происходит только после сброса приложения. Я пытаюсь изменить качество видео в зависимости от пользовательских настроек, используя такой код:

    if ([preferences boolForKey:kVideoQuality]) {
        NSLog(@"High Quality");
        self.pickerController.videoQuality = UIImagePickerControllerQualityTypeHigh;
    } else {
        NSLog(@"Low Quality");
        self.pickerController.videoQuality = UIImagePickerControllerQualityTypeMedium;
    }

    NSLog(@"%d", self.pickerController.videoQuality);

Все выглядит хорошо, когда я изменяю настройку на Высокое качество, выводится "Высокое качество" и наоборот. Я также дважды проверяю последний NSLog, и он также выводит правильное качество. Но если я нахожусь в режиме высокого качества, и я установил низкое качество, ничего не происходит. Если я перезагружу приложение, выйдя из него и вернувшись назад, запись видео теперь находится в режиме низкого качества.

Кто-нибудь знает, какие могут быть возможные причины?

4 ответа

Решение

Оказывается, это ошибка iOS SDK, теперь она исправлена ​​в iOS 5.

Вы устанавливаете свойство videoQuality представления выбора. Его методы делегата иногда не вызываются при программном выборе.

Попробуйте вызвать методы делегата сразу после изменения выбора и посмотрите, работает ли он.

Что если вы уничтожили imagePicker и снова создали новый после его установки?

Не исправление - но обходной путь!

Та же проблема здесь (устройство тестирования: iPhone 4; ОС: iOS 5.0.1):

Никогда не вижу разницы между видео, возвращенным для

 UIImagePickerControllerQualityTypeMedium 
 UIImagePickerControllerQualityTypeHigh

даже если я выйду из приложения. Потратил 1 час, никаких результатов, я собираюсь отказаться от этого... Грустно.

Другие вопросы по тегам