我已经找到了一些很好的答案但是在PHP中,是否有使用JavaScript或iOS的方法?
我找到的链接:
作为一个例子,当你打开"检查元素"在视频中,此代码应该存在(自然地具有不同的ID):
如果您输入网址(" https://v.cdn.vine.co/r/videos/ ..... .mp4)并停在.mp4,视频将在您的浏览器中以视频形式播放,如下所示:
https://v.cdn.vine.co/r/videos/283A5A8FE01255752559474962432_365d817ea89.4.3.6417578100978898648.mp4
这就是我想要的;网址(" https://....")。我可以编辑URL的整个内容,只获取.mp4而不是之后的内容,即.jpg。我能做到的。我似乎无法使用https://vine.co/v/eUm1bYVvWj6链接获取网址内容,而不使用PHP。
非常感谢任何帮助。
我有UIWebView和MPMoviePlayer可用,可以在我的urlRequest中使用HTML字符串,或者只是使用MPMoviePlayer播放.mp4 URL。我只是想知道如何获得.mp4。
答案 0 :(得分:1)
尝试通过创建HTML字符串并通过iframe
解析藤蔓来使用HTML / JS解决此问题后,我无法实现检索.mp4链接所需的结果。
我通过以下方式克服了这个问题:
转到解析HTML的Ray Wenderlich教程,并按照教程进行操作,无论您需要什么。您需要的最重要的部分是将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决定更改其元标记/ .mp4链接的位置)。
注意:您可以在方法名称中使用URL,但我喜欢NSString,这只是我的风格。
享受。