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

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

Жанры

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:, что происходит при каждом отображении вида

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

Древесный маг Орловского княжества 6

Павлов Игорь Васильевич
6. Орловское княжество
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Древесный маг Орловского княжества 6

#Бояръ-Аниме. Газлайтер. Том 36

Володин Григорий Григорьевич
36. История Телепата
Фантастика:
боевая фантастика
аниме
фэнтези
5.00
рейтинг книги
#Бояръ-Аниме. Газлайтер. Том 36

Наследие Маозари 4

Панежин Евгений
4. Наследие Маозари
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Наследие Маозари 4

Бестужев. Служба Государевой Безопасности. Книга третья

Измайлов Сергей
3. Граф Бестужев
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Бестужев. Служба Государевой Безопасности. Книга третья

Повелители сумерек

Первушина Елена Владимировна
Фантастика:
фэнтези
ужасы и мистика
юмористическая фантастика
детективная фантастика
6.00
рейтинг книги
Повелители сумерек

Кодекс Охотника. Книга XXXV

Винокуров Юрий
35. Кодекс Охотника
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга XXXV

Отмороженный

Гарцевич Евгений Александрович
1. Отмороженный
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Отмороженный

Я уже граф. Книга VII

Дрейк Сириус
7. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я уже граф. Книга VII

Газлайтер. Том 20

Володин Григорий Григорьевич
20. История Телепата
Фантастика:
боевая фантастика
аниме
попаданцы
5.00
рейтинг книги
Газлайтер. Том 20

Я спас СССР! том 2

Вязовский Алексей
2. Я спас СССР
Фантастика:
альтернативная история
5.62
рейтинг книги
Я спас СССР! том 2

Бродяга 3

Первухин Андрей Евгеньевич
3. Бродяга
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Бродяга 3

На границе империй. Том 9. Часть 3

INDIGO
16. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 3

Династия. Феникс

Майерс Александр
5. Династия
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Династия. Феникс

Бояръ-Аниме. Газлайтер. Том 34

Володин Григорий Григорьевич
34. История Телепата
Фантастика:
фэнтези
боевая фантастика
аниме
5.00
рейтинг книги
Бояръ-Аниме. Газлайтер. Том 34