YTVimeOextractor extrahiert die MP4 -Streams von Vimeo -Videos, mit denen dann über einen MPMoviePlayerViewController
oder AVPlayerView
gespielt werden kann.
Klasse | Zweck |
---|---|
YTVimeoExtractor | Der YTVimeoExtractor ist die Hauptklasse und sein einziger Zweck ist es, Informationen über Vimeo -Videos abzurufen. Verwenden Sie die beiden Hauptmethoden fetchVideoWithIdentifier:withReferer:completionHandler: oder fetchVideoWithVimeoURL:withReferer:completionHandler: Videoinformationen erhalten. |
YTVimeoExtractorOperation | YTVimeoExtractorOperation ist eine Unterklasse der NSOperation und wird verwendet, um Informationen über Vimeo -Videos abzurufen und zu analysieren. Dies ist eine Klasse mit niedriger Ebene. Im Allgemeinen sollten Sie die YTVimeoExtractor -Klasse mit höherer Ebene verwenden. |
YTVimeoURLParser | YTVimeoURLParser wird verwendet, um Vimeo -URLs zu validieren und zu analysieren. Der Hauptzweck der Klasse besteht darin, zu überprüfen, ob eine bestimmte URL von der YTVimeoExtractor -Klasse behandelt werden kann. |
YTVimeoVideo | YTVimeoVideo repräsentiert ein Vimeo -Video. Verwenden Sie diese Klasse, um auf Informationen zu einem bestimmten Video zuzugreifen. Initialisieren Sie ein YTVimeoVideo -Objekt nicht manuell. Verwenden Sie die -init -Methode aus einer Ausnahme. Verwenden Sie stattdessen die beiden Hauptmethoden der YTVimeoExtractor -Klasse, um ein YTVimeoVideo -Objekt zu erhalten. |
Die bevorzugte Installationsmethode ist über Cocoapods. Fügen Sie einfach Ihrer Podfile hinzu
pod 'YTVimeoExtractor'
und pod install
ausführen.
Alternativ können Sie einfach den Ordner ytvimeoextractor in Ihr Projekt kopieren.
# import " YTVimeoExtractor.h "
Karthago ist ein dezentraler Abhängigkeitsmanager, der Ihre Abhängigkeiten erstellt und Ihnen binäre Rahmenbedingungen bietet.
Sie können Karthago mit Homebrew mit dem folgenden Befehl installieren:
$ brew update
$ brew install carthage
Um YTVimeOextractor mit Karthago in Ihr Xcode -Projekt in Ihr Xcode -Projekt zu integrieren, geben Sie es in Ihrem Cartfile
an:
github "lilfaf/YTVimeoExtractor"
Führen Sie carthage
durch, um das Framework zu erstellen und das gebaute YTVimeoExtractor.framework
in Ihr Xcode -Projekt zu ziehen.
Verwenden Sie die beiden Blockmethoden in der YTVimeoExtractor
-Klasse. Beide Methoden rufen einen CompletionHandler auf, der im Haupt -Thread ausgeführt wird. Wenn der Fertigstellungshandler NIL ist, wird eine Ausnahme ausgelöst. Der CompletionHandler hat zwei Parameter und ein YTVimeoVideo
-Objekt, wenn der Vorgang erfolgreich abgeschlossen wurde, und ein NSError
-Objekt, das das Netzwerk- oder Parsenfehler beschreibt, der möglicherweise aufgetreten ist.
[[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 ];
}
}];
Wenn das Vimeo-Video Einschränkungen auf Domänenebene aufweist und nur aus bestimmten Domänen abgespielt werden kann, ist es einfach, einen Referator hinzuzufügen:
[[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 ist unter der MIT -Lizenz lizenziert. Weitere Informationen finden Sie in der Lizenzdatei.