获取 Vine .mp4 源 - iOS
Get the Vine .mp4 source - iOS
我已经找到了一些很好的答案,但是在 PHP 中,是否有使用 JavaScript 或 iOS 的方法?
我找到的 link 个:
- How to get Vine video url(不确定这是如何实现的)
- Get .mp4 source and poster image from Vine Id (PHP) - 它是 php 所以这不是我要追求的。
例如,当您在视频上打开 "inspect element" 时,应该会出现此代码(自然具有不同的 ID):
如果您输入 url("https://v.cdn.vine.co/r/videos/..... .mp4) 并在 .mp4 处停止,视频将在您的浏览器中作为视频播放,如下所示:
https://v.cdn.vine.co/r/videos/283A5A8FE01255752559474962432_365d817ea89.4.3.6417578100978898648.mp4
这就是我想要的; url("https://....")。我可以编辑 URL 的全部内容以仅获取 .mp4 而不是之后的内容,即 .jpg。我能做到的。在不使用 PHP 的情况下,我似乎无法通过按原样使用 https://vine.co/v/eUm1bYVvWj6 link 来获取 url 内容。
如有任何帮助,我们将不胜感激。
我同时拥有 UIWebView 和 MPMoviePlayer,可以在我的 url 请求中使用 HTML 字符串,或者使用 MPMoviePlayer 播放 .mp4 URL。我只想知道如何获得 .mp4。
在尝试使用 HTML/JS 通过创建 HTML 字符串并通过 iframe
解析藤来解决此问题后,我无法获得检索 .mp4 的预期结果 link。
我通过以下方式克服了这个问题:
转到 Ray Wenderlich 解析教程 HTML,然后按照教程进行任何需要的操作。您需要的最重要的部分是将 hpple 文件安装到您的项目(通过 Ray Wenderlich 教程找到)和引用 libxml2。
使用这段代码解析得到MP4:
-(void)loadVine: (NSString *) vineLink {
//create the string to store the result
NSString * url = nil;
// Create a URL from the String passed in
NSURL *vineURL = [NSURL URLWithString:vineLink];
NSData *vineHTMLdata = [NSData dataWithContentsOfURL:vineURL];
TFHpple *vineParser = [TFHpple hppleWithHTMLData:vineHTMLdata];
// This is the most important part of your query
// The vine .mp4 path is in the `<meta>` tag as show below
NSString *vineXpathQueryString = @"//meta[@property='twitter:player:stream']";
NSArray *vineNodes = [vineParser searchWithXPathQuery:vineXpathQueryString];
for (TFHppleElement *element in vineNodes) {
//this sets your `NSString * url` to be the result
url = [element objectForKey:@"content"];
//print it out in log to display your .mp4 link
NSLog(@"What is the vine? %@", url);
//now pass it to your player
[self autoPlayVine:url];
}
}
这是我的藤播放器代码:
-(void) autoPlayVine :(NSString *) link{
NSURL * url = [NSURL URLWithString:link];
self.moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(moviePlayBackDidFinish:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:self.moviePlayer];
self.moviePlayer.controlStyle = MPMovieControlStyleDefault;
self.moviePlayer.shouldAutoplay = YES;
// set the frame to be full screen - needed otherwise you may only get the audio as there is no frame size set, but the movieplayer has been added to the view
self.moviePlayer.view.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height);
// below enables either continuous loop or delete for one time play
self.moviePlayer.repeatMode = YES;
[self.view addSubview:self.moviePlayer.view];
[self.moviePlayer setFullscreen:YES animated:YES];
}
根据您的喜好在 viewDidLoad
或 viewWillAppear
中调用它:
NSString * yourVineLink = @"https://vine.co/v/.......";
[self loadVine:yourVineLink];
请务必按照 Ray Wenderlich 教程确保您已将正确的文件和导入语句添加到您的项目中。如果你这样做了,这应该一切正常(除非 Vine 决定改变它的 meta tags/placement of .mp4 link)。
注意:您可以在方法名称中使用 URL,但我喜欢 NSString,这只是我的风格。
尽情享受吧。
我已经找到了一些很好的答案,但是在 PHP 中,是否有使用 JavaScript 或 iOS 的方法?
我找到的 link 个:
- How to get Vine video url(不确定这是如何实现的)
- Get .mp4 source and poster image from Vine Id (PHP) - 它是 php 所以这不是我要追求的。
例如,当您在视频上打开 "inspect element" 时,应该会出现此代码(自然具有不同的 ID):
如果您输入 url("https://v.cdn.vine.co/r/videos/..... .mp4) 并在 .mp4 处停止,视频将在您的浏览器中作为视频播放,如下所示:
https://v.cdn.vine.co/r/videos/283A5A8FE01255752559474962432_365d817ea89.4.3.6417578100978898648.mp4
这就是我想要的; url("https://....")。我可以编辑 URL 的全部内容以仅获取 .mp4 而不是之后的内容,即 .jpg。我能做到的。在不使用 PHP 的情况下,我似乎无法通过按原样使用 https://vine.co/v/eUm1bYVvWj6 link 来获取 url 内容。
如有任何帮助,我们将不胜感激。
我同时拥有 UIWebView 和 MPMoviePlayer,可以在我的 url 请求中使用 HTML 字符串,或者使用 MPMoviePlayer 播放 .mp4 URL。我只想知道如何获得 .mp4。
在尝试使用 HTML/JS 通过创建 HTML 字符串并通过 iframe
解析藤来解决此问题后,我无法获得检索 .mp4 的预期结果 link。
我通过以下方式克服了这个问题:
转到 Ray Wenderlich 解析教程 HTML,然后按照教程进行任何需要的操作。您需要的最重要的部分是将 hpple 文件安装到您的项目(通过 Ray Wenderlich 教程找到)和引用 libxml2。
使用这段代码解析得到MP4:
-(void)loadVine: (NSString *) vineLink { //create the string to store the result NSString * url = nil; // Create a URL from the String passed in NSURL *vineURL = [NSURL URLWithString:vineLink]; NSData *vineHTMLdata = [NSData dataWithContentsOfURL:vineURL]; TFHpple *vineParser = [TFHpple hppleWithHTMLData:vineHTMLdata]; // This is the most important part of your query // The vine .mp4 path is in the `<meta>` tag as show below NSString *vineXpathQueryString = @"//meta[@property='twitter:player:stream']"; NSArray *vineNodes = [vineParser searchWithXPathQuery:vineXpathQueryString]; for (TFHppleElement *element in vineNodes) { //this sets your `NSString * url` to be the result url = [element objectForKey:@"content"]; //print it out in log to display your .mp4 link NSLog(@"What is the vine? %@", url); //now pass it to your player [self autoPlayVine:url]; } }
这是我的藤播放器代码:
-(void) autoPlayVine :(NSString *) link{ NSURL * url = [NSURL URLWithString:link]; self.moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayBackDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:self.moviePlayer]; self.moviePlayer.controlStyle = MPMovieControlStyleDefault; self.moviePlayer.shouldAutoplay = YES; // set the frame to be full screen - needed otherwise you may only get the audio as there is no frame size set, but the movieplayer has been added to the view self.moviePlayer.view.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height); // below enables either continuous loop or delete for one time play self.moviePlayer.repeatMode = YES; [self.view addSubview:self.moviePlayer.view]; [self.moviePlayer setFullscreen:YES animated:YES]; }
根据您的喜好在
viewDidLoad
或viewWillAppear
中调用它:NSString * yourVineLink = @"https://vine.co/v/......."; [self loadVine:yourVineLink];
请务必按照 Ray Wenderlich 教程确保您已将正确的文件和导入语句添加到您的项目中。如果你这样做了,这应该一切正常(除非 Vine 决定改变它的 meta tags/placement of .mp4 link)。
注意:您可以在方法名称中使用 URL,但我喜欢 NSString,这只是我的风格。
尽情享受吧。