我已经找到了一些很好的答案,但是在PHP中,有没有JavaScript或iOS方法?

我找到的链接:


How to get Vine video url(不确定如何实现)
Get .mp4 source and poster image from Vine Id (PHP)-它是php,所以不是我要追求的。


例如,当您在视频上打开“检查元素”时,应显示以下代码(自然会有不同的ID):

javascript - 获取Vine .mp4源-iOS-LMLPHP

如果您输入url(“ ...... mp4)并停在.mp4,则视频将在您的浏览器中作为视频播放,如下所示:

https://v.cdn.vine.co/r/videos/

这就是我要的; url(“ https:// ....”)。我可以编辑URL的全部内容,以仅获取.mp4,而不获取其后的内容,即.jpg。我能做的。我似乎无法通过原样使用https://v.cdn.vine.co/r/videos/283A5A8FE01255752559474962432_365d817ea89.4.3.6417578100978898648.mp4链接而不使用PHP来获取url内容。

任何帮助将非常感激。

我同时提供UIWebView和MPMoviePlayer,可以在urlRequest中使用HTML字符串,也可以使用MPMoviePlayer播放.mp4 URL。我只是想知道如何获取.mp4。

最佳答案

在尝试通过创建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];
}

根据您的喜好在您的viewDidLoadviewWillAppear中进行调用:

NSString * yourVineLink = @"https://vine.co/v/.......";
[self loadVine:yourVineLink];



通过遵循Ray Wenderlich教程,确保已将正确的文件和导入语句添加到项目中,这一点很重要。如果您这样做了,那么一切都将正常工作(除非Vine决定更改其元标记/.mp4链接的位置)。

注意:您可以在方法名称中使用URL,但是我喜欢NSString,这只是我的风格。

请享用。

关于javascript - 获取Vine .mp4源-iOS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32430455/

10-12 01:25
查看更多