YTVIMEOExtractor mengekstrak aliran MP4 video Vimeo, yang kemudian dapat digunakan untuk bermain melalui MPMoviePlayerViewController
atau AVPlayerView
.
Kelas | Tujuan |
---|---|
YTVimeoExtractor | YTVimeoExtractor adalah kelas utama dan satu -satunya tujuannya adalah untuk mengambil informasi tentang video Vimeo. Gunakan dua metode utama fetchVideoWithIdentifier:withReferer:completionHandler: atau fetchVideoWithVimeoURL:withReferer:completionHandler: untuk mendapatkan informasi video. |
YTVimeoExtractorOperation | YTVimeoExtractorOperation adalah subclass dari NSOperation dan digunakan untuk mengambil dan menguraikan informasi tentang video Vimeo. Ini kelas level rendah. Secara umum, Anda harus menggunakan kelas YTVimeoExtractor level yang lebih tinggi. |
YTVimeoURLParser | YTVimeoURLParser digunakan untuk memvalidasi dan menguraikan URL Vimeo. Tujuan utama kelas ini adalah untuk memeriksa apakah URL yang diberikan dapat ditangani oleh kelas YTVimeoExtractor . |
YTVimeoVideo | YTVimeoVideo mewakili video Vimeo. Gunakan kelas ini untuk mengakses informasi tentang video tertentu. Jangan secara manual menginisialisasi objek YTVimeoVideo . Menggunakan metode -init akan melempar pengecualian, alih -alih menggunakan dua metode utama kelas YTVimeoExtractor untuk mendapatkan objek YTVimeoVideo . |
Cara pemasangan yang disukai adalah melalui cocoapods. Tambahkan saja ke podfile Anda
pod 'YTVimeoExtractor'
dan jalankan pod install
.
Atau Anda bisa menyalin folder YTVIMEOExtractor ke proyek Anda.
# import " YTVimeoExtractor.h "
Carthage adalah manajer ketergantungan terdesentralisasi yang membangun ketergantungan Anda dan memberi Anda kerangka kerja biner.
Anda dapat menginstal carthage dengan homebrew menggunakan perintah berikut:
$ brew update
$ brew install carthage
Untuk mengintegrasikan YTVIMEOExtractor ke dalam proyek XCODE Anda menggunakan Carthage, tentukan di Cartfile
Anda:
github "lilfaf/YTVimeoExtractor"
Jalankan carthage
untuk membangun kerangka kerja dan seret YTVimeoExtractor.framework
yang dibangun ke dalam proyek XCODE Anda.
Gunakan dua metode blok di kelas YTVimeoExtractor
. Kedua metode akan memanggil penyelesaian yang dieksekusi di utas utama. Jika penangan penyelesaian adalah nol, pengecualian akan dilemparkan. Penyelesaian Handler memiliki, dua parameter objek YTVimeoVideo
, jika operasi diselesaikan dengan sukses, dan objek NSError
yang menggambarkan jaringan atau kesalahan parsing yang mungkin terjadi.
[[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 ];
}
}];
Jika video Vimeo memiliki batasan tingkat domain dan hanya dapat dimainkan dari domain tertentu, mudah untuk menambahkan referensi:
[[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 dilisensikan di bawah lisensi MIT. Lihat file lisensi untuk informasi lebih lanjut.