javascript - 获取 Vine .mp4 源 - iOS

标签 javascript ios mp4 vine

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

我找到的链接:

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

例如,当您在视频上打开“检查元素”时,应该会出现此代码(自然具有不同的 id):

vine video element

如果您输入 url("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 获取 url 内容按原样链接,不使用 PHP。

任何帮助将不胜感激。

我有可用的 UIWebView 和 MPMoviePlayer,可以在我的 urlRequest 中使用 HTML 字符串,也可以简单地使用 MPMoviePlayer 播放 .mp4 URL。我只想知道如何获得 .mp4。

最佳答案

尝试使用 HTML/JS 通过创建 HTML 字符串并通过 iframe 解析藤蔓来解决此问题后,我无法实现检索 .mp4 链接的预期结果。

我通过以下方式克服了这个问题:

  1. 转到 Ray Wenderlich有关解析 HTML 的教程,并按照教程进行任何您需要的操作。您需要的最重要的部分是将 hpple 文件安装到您的项目中(通过 Ray Wenderlich 教程找到)并引用 libxml2。

  2. 使用此代码进行解析以获取 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];
        }
    }
    
  3. 这是我的 vine 播放器代码:

    -(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];
    }
    
  4. 根据您的偏好在 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/

相关文章:

iphone - 如何从 iPhone 相机进行快速图像处理?

audio - 如何从 H.264 帧和音频帧的集合创建 mp4 文件?

c# - 在 C# 中使用 FFmpeg 或包装器从 mp4 获取 mp3

javascript - 每次点击重置 CSS 翻转动画

javascript - jquery.getScript - 如何设置属性?

ios - 在 UILabel 子类中概述 UILabel 文本

audio - MP4-读取音频 block

javascript - JavaScript/HTML5 的 RTSP 解决方案

javascript - 将 toLowerCase 的操作限制为字符串的一部分?

ios - iOS:录制的音频在Chrome上可以正常播放,但在Safari上不能正常播放