Чтение онлайн

на главную - закладки

Жанры

iOS. Приемы программирования

Нахавандипур Вандад

Шрифт:

нашего контроллера вида */

return;

} else {

beenHereBefore = YES;

self.assetsLibrary = [[ALAssetsLibrary alloc] init];

}

if ([self isPhotoLibraryAvailable] &&

[self canUserPickVideosFromPhotoLibrary]){

UIImagePickerController *imagePicker =

[[UIImagePickerController alloc] init];

/* Задаем
тип источника для библиотеки фотографий. */

imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

/* Требуется, чтобы пользователь мог выбирать видеоролики

из библиотеки. */

NSArray *mediaTypes = [[NSArray alloc] initWithObjects:

(__bridge NSString *)kUTTypeMovie, nil];

imagePicker.mediaTypes = mediaTypes;

/* Задаем делегат для текущего контроллера вида. */

imagePicker.delegate = self;

/* Отображаем окно для выбора изображений. */

[self.navigationController presentModalViewController: imagePicker

animated: YES];

}

}

Далее нам необходимо узнать, когда пользователь сделает выбор (то есть выберет видеоролик). Обработаем различные сообщения делегата, обслуживающего инструмент для выбора изображений:

— (void) imagePickerController:(UIImagePickerController *)picker

didFinishPickingMediaWithInfo:(NSDictionary *)info{

NSLog(@"Picker returned successfully.");

NSString *mediaType = [info objectForKey:

UIImagePickerControllerMediaType];

if ([mediaType isEqualToString:(NSString *)kUTTypeMovie]){

self.videoURLToEdit =

[info objectForKey: UIImagePickerControllerMediaURL];

}

[picker dismissModalViewControllerAnimated: YES];

/* Сначала убедимся, что редактор видео способен обрабатывать видео,

путь к которому в папке документов мы указали. */

if ([UIVideoEditorController canEditVideoAtPath: videoPath]){

/* Инстанцируем редактор видео. */

UIVideoEditorController *videoEditor =

[[UIVideoEditorController alloc] init];

/* Становимся делегатом видеоредактора. */

videoEditor.delegate = self;

/* Убеждаемся,
что задали путь к видеоролику. */

videoEditor.videoPath = videoPath;

/* А теперь отображаем видеоредактор. */

[self.navigationController presentModalViewController: videoEditor

animated: YES];

self.videoURLToEdit = nil;

} else {

NSLog(@"Cannot edit the video at this path");

}

}

}];

}

— (void) imagePickerControllerDidCancel:(UIImagePickerController *)picker{

NSLog(@"Picker was cancelled");

self.videoURLToEdit = nil;

[picker dismissViewControllerAnimated: YES completion: nil];

}

В данном примере пользователь может выбрать любое видео из библиотеки фотографий. Как только он это сделает, мы отобразим контроллер видеоредактора, указав путь к видеоролику. Этот путь передает нам инструмент для выбора видео в методе делегата.

Делегат контроллера видеоредактора получает важные сообщения о состоянии этого видеоредактора. Объект делегата должен соответствовать протоколам UIVideoEditorControllerDelegate и UINavigationControllerDelegate. В данном примере мы решили, что делегатом видеоредактора должен стать контроллер вида. Как только редактирование будет закончено, объект делегата получит от контроллера видеоредактора метод делегата videoEditorController: didSaveEditedVideoToPath:. Путь к отредактированному видео будет передан в параметре didSaveEditedVideoToPath.

Прежде чем попытаться отобразить для пользователя интерфейс видеоредактора, нужно вызывать метод класса canEditVideoAtPath:, относящийся к классу UIVideoEditorController. Мы это делаем, чтобы убедиться, что тот путь, который вы пытаетесь редактировать, доступен для обработки в контроллере. Если возвращаемое значение этого метода класса равно YES, можно переходить к конфигурированию и отображению интерфейса редактора видео. Если нет — идем другим путем. Возможно, потребуется отобразить для пользователя предупреждение.

См. также

Разделы 13.6 и 13.7.

Глава 14. Многозадачность

14.0. Введение

Многозадачность — это способ работы, обеспечивающий фоновое выполнение. Иначе говоря, приложение может работать как обычно — выполнять задачи, порождать новые потоки, слушать уведомления, реагировать на события, — но просто ничего не отображать на экране и не взаимодействовать с пользователем каким-либо образом. Когда пользователь нажимает на устройстве кнопку Home (Домой) — в более ранних версиях iPhone и iPad эта кнопка завершала работу приложения, — программа просто переходит в фоновый режим.

Поделиться:
Популярные книги

Неудержимый. Книга VIII

Боярский Андрей
8. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
6.00
рейтинг книги
Неудержимый. Книга VIII

Законы Рода. Том 6

Flow Ascold
6. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 6

Восход. Солнцев. Книга I

Скабер Артемий
1. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Восход. Солнцев. Книга I

Попаданка

Ахминеева Нина
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Попаданка

Возлюби болезнь свою

Синельников Валерий Владимирович
Научно-образовательная:
психология
7.71
рейтинг книги
Возлюби болезнь свою

Кодекс Крови. Книга III

Борзых М.
3. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга III

Ротмистр Гордеев 2

Дашко Дмитрий
2. Ротмистр Гордеев
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Ротмистр Гордеев 2

Идеальный мир для Лекаря 5

Сапфир Олег
5. Лекарь
Фантастика:
фэнтези
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 5

Адвокат Империи 3

Карелин Сергей Витальевич
3. Адвокат империи
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Адвокат Империи 3

Жребий некроманта 3

Решетов Евгений Валерьевич
3. Жребий некроманта
Фантастика:
боевая фантастика
5.56
рейтинг книги
Жребий некроманта 3

Город драконов

Звездная Елена
1. Город драконов
Фантастика:
фэнтези
6.80
рейтинг книги
Город драконов

Убивать, чтобы жить

Бор Жорж
1. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Убивать, чтобы жить

Инквизитор Тьмы 2

Шмаков Алексей Семенович
2. Инквизитор Тьмы
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Инквизитор Тьмы 2

Беглец

Бубела Олег Николаевич
1. Совсем не герой
Фантастика:
фэнтези
попаданцы
8.94
рейтинг книги
Беглец