يستخرج YtvimeoExtractor تدفقات MP4 لمقاطع فيديو Vimeo ، والتي يمكن استخدامها بعد ذلك للتشغيل عبر MPMoviePlayerViewController
أو AVPlayerView
.
فصل | غاية |
---|---|
YTVimeoExtractor | YTVimeoExtractor هو الفئة الرئيسية والغرض منها الوحيد هو جلب معلومات حول مقاطع فيديو Vimeo. استخدم الطريقتين الرئيسيتين fetchVideoWithIdentifier:withReferer:completionHandler: أو fetchVideoWithVimeoURL:withReferer:completionHandler: للحصول على معلومات الفيديو. |
YTVimeoExtractorOperation | YTVimeoExtractorOperation هي فئة فرعية من NSOperation وتستخدم لجلب المعلومات حول مقاطع فيديو Vimeo وتحليلها. هذا فئة منخفضة المستوى. بشكل عام ، يجب عليك استخدام فئة YTVimeoExtractor ذات المستوى الأعلى. |
YTVimeoURLParser | يتم استخدام YTVimeoURLParser للتحقق من صحة وتوضع عناوين URL Vimeo. الغرض الرئيسي من الفصل هو التحقق مما إذا كان يمكن معالجة عنوان URL معين بواسطة فئة YTVimeoExtractor . |
YTVimeoVideo | يمثل YTVimeoVideo فيديو Vimeo. استخدم هذه الفئة للوصول إلى معلومات حول فيديو معين. لا تهيئة يدويًا كائن YTVimeoVideo . سيؤدي استخدام طريقة -init إلى إلقاء استثناء ، بدلاً من ذلك ، استخدم الطريقتين الرئيسيتين لفئة YTVimeoExtractor للحصول على كائن YTVimeoVideo . |
الطريقة المفضلة للتثبيت هي عبر cocoapods. فقط أضف إلى podfile الخاص بك
pod 'YTVimeoExtractor'
وتشغيل pod install
.
بدلاً من ذلك ، يمكنك فقط نسخ مجلد ytvimeoextractor إلى مشروعك.
# import " YTVimeoExtractor.h "
Carthage هو مدير التبعية اللامركزي الذي يبني تبعياتك ويوفر لك الأطر الثنائية.
يمكنك تثبيت قرطاج مع Homebrew باستخدام الأمر التالي:
$ brew update
$ brew install carthage
لدمج ytvimeoextractor في مشروع Xcode الخاص بك باستخدام قرطاج ، حدده في Cartfile
:
github "lilfaf/YTVimeoExtractor"
قم بتشغيل carthage
لبناء الإطار وسحب YTVimeoExtractor.framework
.
استخدم طريقتي الكتلة في فئة YTVimeoExtractor
. ستقوم كلتا الطريقتين باستدعاء إكمال Handler الذي يتم تنفيذه على الموضوع الرئيسي. إذا كان معالج الانتهاء لا شيء ، فسيتم طرح استثناء. يحتوي exextainhandler ، وهما معلمتان كائن 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 مرخصة بموجب ترخيص معهد ماساتشوستس للتكنولوجيا. انظر ملف الترخيص لمزيد من المعلومات.