从RSS源项目获取视频的链接

时间:2014-04-09 02:45:06

标签: jquery google-chrome-extension rss html5-video

我是网络开发的新手,这是我的第一个Chrome扩展程序。这是我的脚本,用于获取和解析RSS提要:

$(document).ready(function() {
    // FETCH THE RSS FEEDS AND PARSE THEM
    $.get(rssurl, function(data) {
      var $xml = $(data);
      $xml.find("item").each(function() {
        var $this = $(this),
            item = {
                     title: $this.find("title").text(),
                     link: $this.find("link").text(),
                     description: $this.find("description").text(),
                     pubDate: $this.find("pubDate").text(),
                     url : $this.find("enclosure").attr("url"),
                     author: $this.find("author").text()
                   };

        // ADD IT TO THE ARRAY
        items.push(item);
        if(items.length == 1){
          $(".title").html(item.title);
          $(".description").html(item.url);
          $(".author").html(item.author);

          $(video).attr({"src" : item.url});
        }
      });// end of each()
    });// end of $.get()
});  

然而问题是:

url : $this.find("enclosure").attr("url"),  

这个想法是让视频播放,尽管它​​在.mp4中 以下是我要解析的Feed:http://feeds.podtrac.com/tTKj5t05olM $

N.B。我已经允许Chrome清单中的所有网址

3 个答案:

答案 0 :(得分:1)

在将项目添加到数组之前尝试添加以下条件:

if($("enclosure[url$='.mp4']",this).length>0){}

[attribute $ =“value”]是jQuery属性end with selector。它将选择具有指定属性的元素,其值以给定字符串结尾。

代码:

$(document).ready(function() {
    // FETCH THE RSS FEEDS AND PARSE THEM
    $.get(rssurl, function(data) {
      var $xml = $(data);
      $xml.find("item").each(function() {
        //if item's enclosure url attribute is in .mp4 format... then add it to the video array
        if($("enclosure[url$='.mp4']",this).length>0){
          var $this = $(this),
              item = {
                       title: $this.find("title").text(),
                       link: $this.find("link").text(),
                       description: $this.find("description").text(),
                       pubDate: $this.find("pubDate").text(),
                       url : $this.find("enclosure").attr("url"),
                       author: $this.find("author").text()
                     };

          // ADD IT TO THE ARRAY
          items.push(item);

          if(items.length == 1){
            $(".title").html(item.title);
            $(".description").html(item.url);
            $(".author").html(item.author);

            $(video).attr({"src" : item.url});
          }
        }
      });// end of each()
    });// end of $.get()
});

答案 1 :(得分:1)

我认为您的mp4文件格式不正确,无法在HTML5视频代码中播放。

当我在firefox中打开http://media.tqaweekly.com/video/tqa-se4ep29.mp4时,我收到一条错误消息,指出视频已损坏。在Chrome中,我有音频,但没有视频。

我为另一个堆叠器here解决了这个问题。我认为这是类似的事情。

之后,您需要在HTML5视频标记中显示视频。但我想你不需要帮助:)

<video width="640" height="360" controls>
  <source src="yoursrc.mp4"  type="video/mp4; codecs=avc1.42E01E,mp4a.40.2">
</video> 

答案 2 :(得分:0)

问题在于:

$(video).attr({"src" : item.url});  

需要:

$("video").attr("src",item.url);