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

на главную

Жанры

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

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

Шрифт:

Решение

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

Обсуждение

Класс UIVideoEditorController, содержащийся в iOS SDK, позволяет программисту вывести на экран перед пользователем специальный интерфейс для редактирования.

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

При вызове метода presentModalViewController: animated: сразу же после метода dismissModalViewControllerAnimated: контроллера вида приложение завершится с ошибкой времени исполнения. Необходимо дождаться, пока первый контроллер вида не будет убран с экрана, и только потом отображать второй контроллер вида. Можно пользоваться относящимся к контроллерам вида методом viewDidAppear:, помогающим определить, когда отобразится ваш вид. На данном этапе можно быть уверенным, что все модальные контроллеры видов уже убраны.

Итак, продолжим и объявим контроллер вида со всеми необходимыми свойствами:

#import «ViewController.h»

#import <MobileCoreServices/MobileCoreServices.h>

#import <AssetsLibrary/AssetsLibrary.h>

@interface ViewController 

<UINavigationControllerDelegate,

UIVideoEditorControllerDelegate,

UIImagePickerControllerDelegate>

@property (nonatomic, strong) NSURL *videoURLToEdit;

@property (nonatomic, strong) ALAssetsLibrary *assetsLibrary;

@end

@implementation ViewController

<# Остаток вашего кода находится здесь #>

Далее нужно обработать различные сообщения, получаемые от делегата видеоредактора в контроллере вида:

— (void)videoEditorController:(UIVideoEditorController *)editor

didSaveEditedVideoToPath:(NSString *)editedVideoPath{

NSLog(@"The video editor finished saving video");

NSLog(@"The edited video path is at = %@", editedVideoPath);

[editor dismissModalViewControllerAnimated: YES];

}

— (void)videoEditorController:(UIVideoEditorController *)editor

didFailWithError:(NSError *)error{

NSLog(@"Video editor error occurred = %@", error);

[editor dismissModalViewControllerAnimated: YES];

}

— (void)videoEditorControllerDidCancel:(UIVideoEditorController *)editor{

NSLog(@"The video editor was cancelled");

[editor dismissModalViewControllerAnimated: YES];

}

Когда

вид загрузится, мы должны будем отобразить для пользователя вид для выбора видео. Видео он может выбрать из библиотеки, а потом мы предоставим возможность его обрабатывать:

— (BOOL) cameraSupportsMedia:(NSString *)paramMediaType

sourceType:(UIImagePickerControllerSourceType)paramSourceType{

__block BOOL result = NO;

if ([paramMediaType length] == 0){

NSLog(@"Media type is empty.");

return NO;

}

NSArray *availableMediaTypes =

[UIImagePickerController

availableMediaTypesForSourceType: paramSourceType];

[availableMediaTypes enumerateObjectsUsingBlock:

^(id obj, NSUInteger idx, BOOL *stop) {

NSString *mediaType = (NSString *)obj;

if ([mediaType isEqualToString: paramMediaType]){

result = YES;

*stop= YES;

}

}];

return result;

}

— (BOOL) canUserPickVideosFromPhotoLibrary{

return [self cameraSupportsMedia:(__bridge NSString *)kUTTypeMovie

sourceType: UIImagePickerControllerSourceTypePhotoLibrary];

}

— (BOOL) isPhotoLibraryAvailable{

return [UIImagePickerController

isSourceTypeAvailable:

UIImagePickerControllerSourceTypePhotoLibrary];

}

— (void)viewDidAppear:(BOOL)animated{

[super viewDidAppear: animated];

static BOOL beenHereBefore = NO;

if (beenHereBefore){

/* Отображаем элемент для выбора даты только после того, как вызывается

метод viewDidAppear:, что происходит при каждом отображении вида

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

Звёздные корабли. Туманность Андромеды (ил. И. Шалито, Г. Бойко)

Ефремов Иван Антонович
Мир приключений изд. Правда
Фантастика:
научная фантастика
7.00
рейтинг книги
Звёздные корабли. Туманность Андромеды (ил. И. Шалито, Г. Бойко)

Черная роза

Крымская Диана
Любовные романы:
исторические любовные романы
5.00
рейтинг книги
Черная роза

Война. Krieg. 1941—1945. Произведения русских и немецких писателей

Быков Василий Владимирович
Проза:
военная проза
5.00
рейтинг книги
Война. Krieg. 1941—1945. Произведения русских и немецких писателей

Солнечный корт

Сакавич Нора
4. Все ради игры
Фантастика:
зарубежная фантастика
8.00
рейтинг книги
Солнечный корт

История США от глубокой древности до 1918 года

Азимов Айзек
Популярная наука от Азимова
Научно-образовательная:
история
5.00
рейтинг книги
История США от глубокой древности до 1918 года

Время прощать

Гришэм Джон
2. Джейк Брайгенс
Детективы:
триллеры
7.78
рейтинг книги
Время прощать

История Второй мировой войны. Блицкриг

Фон Типпельскирх Курт
Вторая мировая. Взгляд врага
Научно-образовательная:
история
7.14
рейтинг книги
История Второй мировой войны. Блицкриг

Загадка Катилины

Сейлор Стивен
3. Roma sub Rosa
Проза:
историческая проза
5.00
рейтинг книги
Загадка Катилины

Прапорщик. Назад в СССР. Книга 7

Гаусс Максим
7. Второй шанс
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прапорщик. Назад в СССР. Книга 7

Русская мафия 1991–2014. Новейшая история бандитской России

Карышев Валерий Михайлович
Энциклопедия криминала
Документальная литература:
прочая документальная литература
5.00
рейтинг книги
Русская мафия 1991–2014. Новейшая история бандитской России

Мир Лема - словарь и путеводитель

Ашкинази Леонид Александрович
Фантастика:
научная фантастика
5.00
рейтинг книги
Мир Лема - словарь и путеводитель

Дело «Пестрых». Черная моль

Адамов Аркадий Григорьевич
Мастера советского детектива
Детективы:
полицейские детективы
7.50
рейтинг книги
Дело «Пестрых». Черная моль

Без объявления войны

Ким Сергей Александрович
1. Без объявления войны
Фантастика:
фэнтези
боевая фантастика
6.29
рейтинг книги
Без объявления войны

Фантастика 1967

Булычев Кир
Фантастика
Фантастика:
научная фантастика
5.00
рейтинг книги
Фантастика 1967