Ytvimeoextractor извлекает потоки MP4 Vimeo Videos, которые затем можно использовать для воспроизведения через MPMoviePlayerViewController
или AVPlayerView
.
Сорт | Цель |
---|---|
YTVimeoExtractor | YTVimeoExtractor является основным классом, и его единственной целью является извлечение информации о видео Vimeo. Используйте два основных метода fetchVideoWithIdentifier:withReferer:completionHandler: или fetchVideoWithVimeoURL:withReferer:completionHandler: для получения видео -информации. |
YTVimeoExtractorOperation | YTVimeoExtractorOperation - это подкласс NSOperation и используется для извлечения и анализа информации о видео Vimeo. Это класс низкого уровня. Вообще говоря, вы должны использовать класс YTVimeoExtractor более высокого уровня. |
YTVimeoURLParser | YTVimeoURLParser используется для проверки и Parse Pult URL -адреса Vimeo. Основная цель класса - проверить, можно ли обрабатывать данный URL -адрес класса YTVimeoExtractor . |
YTVimeoVideo | YTVimeoVideo представляет видео Vimeo. Используйте этот класс, чтобы получить доступ к информации о конкретном видео. Не инициализируйте объект YTVimeoVideo . Использование метода -init будет выбросить исключение, вместо этого используйте два основных метода класса YTVimeoExtractor , чтобы получить объект YTVimeoVideo . |
Предпочтительным способом установки является кокопод. Просто добавьте в свой Podfile
pod 'YTVimeoExtractor'
и запустить pod install
.
В качестве альтернативы вы можете просто скопировать папку ytvimeoextractor в свой проект.
# import " YTVimeoExtractor.h "
Карфаген - это децентрализованный менеджер зависимостей, который строит ваши зависимости и предоставляет вам двоичные рамки.
Вы можете установить Carthage с Homebrew, используя следующую команду:
$ brew update
$ brew install carthage
Чтобы интегрировать ytvimeoextractor в свой проект Xcode с помощью Carthage, укажите его в своем Cartfile
:
github "lilfaf/YTVimeoExtractor"
Запустите carthage
, чтобы построить рамку и перетащить встроенный YTVimeoExtractor.framework
в свой проект Xcode.
Используйте два метода блока в классе YTVimeoExtractor
. Оба метода вызовут завершающего и выполненного в основном потоке. Если обработчик завершения равна нулю, будет брошено исключение. У AntiplionHandler есть два параметра объекта YTVimeoVideo
, если операция была успешно завершена, и объект NSError
описывающий сеть или ошибку анализа, которая могла произойти.
[[YTVimeoExtractor sharedExtractor ]fetchVideoWithVimeoURL: @" https://vimeo.com/channels/staffpicks/147876560 " withReferer: nil completionHandler: ^(YTVimeoVideo * _Nullable video, NSError * _Nullable error) {
if (video) {
[ self .titleTextField setStringValue: video.title];
// Will get the lowest available quality.
// NSURL *lowQualityURL = [video lowestQualityStreamURL];
// Will get the highest available quality.
NSURL *highQualityURL = [video highestQualityStreamURL ];
AVPlayer *player = [[AVPlayer alloc ]initWithURL:highQualityURL];
self. playerView . player = player;
self. playerView . videoGravity = AVLayerVideoGravityResizeAspectFill;
[ self .playerView.player play ];
[ self .playerView becomeFirstResponder ];
} else {
[[ NSAlert alertWithError: error]runModal];
}
}];
[[YTVimeoExtractor sharedExtractor ]fetchVideoWithVimeoURL: @" https://vimeo.com/channels/staffpicks/147876560 " withReferer: nil completionHandler: ^(YTVimeoVideo * _Nullable video, NSError * _Nullable error) {
if (video) {
self. titleLabel . text = [ NSString stringWithFormat: @" Video Title: %@ " ,video.title];
// Will get the lowest available quality.
// NSURL *lowQualityURL = [video lowestQualityStreamURL];
// Will get the highest available quality.
NSURL *highQualityURL = [video highestQualityStreamURL ];
MPMoviePlayerViewController *moviePlayerViewController = [[MPMoviePlayerViewController alloc ]initWithContentURL:highQualityURL];
[ self presentMoviePlayerViewControllerAnimated: moviePlayerViewController];
} else {
UIAlertView *alertView = [[UIAlertView alloc ]init];
alertView. title = error. localizedDescription ;
alertView. message = error. localizedFailureReason ;
[alertView addButtonWithTitle: @" OK " ];
alertView. delegate = self;
[alertView show ];
}
}];
Если видео Vimeo имеет ограничения на уровне домена и может быть воспроизведено только из определенных областей, легко добавить реферат:
[[YTVimeoExtractor sharedExtractor ]fetchVideoWithVimeoURL: @" https://vimeo.com/channels/staffpicks/147876560 " withReferer: @" http://www.mywebsite.com " completionHandler: ^(YTVimeoVideo * _Nullable video, NSError * _Nullable error) {
if (video) {
// Will get the lowest available quality.
// NSURL *lowQualityURL = [video lowestQualityStreamURL];
// Will get the highest available quality.
NSURL *highQualityURL = [video highestQualityStreamURL ];
MPMoviePlayerViewController *moviePlayerViewController = [[MPMoviePlayerViewController alloc ]initWithContentURL:highQualityURL];
[ self presentMoviePlayerViewControllerAnimated: moviePlayerViewController];
} else {
UIAlertView *alertView = [[UIAlertView alloc ]init];
alertView. title = error. localizedDescription ;
alertView. message = error. localizedFailureReason ;
[alertView addButtonWithTitle: @" OK " ];
alertView. delegate = self;
[alertView show ];
}
}];
Ytvimeoextractor лицензирован по лицензии MIT. См. Файл лицензии для получения дополнительной информации.