从XML中获取播放列表项的新原型

Get new prototype from XML for playlist-items

本文关键字:新原型 原型 XML 获取 播放列表      更新时间:2023-10-26

我正在尝试从XML文件中提取播放列表数据,并以json格式创建新的播放列表项。jPlayer用于音频播放/播放列表,xml2json插件用于转换XML。

我在插入每个单独的曲目+数据作为播放列表项目时遇到了问题。此外,我想知道使用原型方法是否是正确的做法。

    <script type="text/javascript">
    //define object for individual tracks
    var $track = {
        mp3Location : "path/to/mp3",
        oggLocation : "path/to/ogg",
        creator     : "Daisha de Wijs",
        album   : "Programmanaam",
        title       : "Onderwerp",
        annotation  : "Beschrijving",
        poster  : "path/to/img" 
        }
    //create prototype for track object 
    function Track (track) {
        this.track = track;
        };  
    Track.prototype = $track;
    //read XML file and pull contents
    //Example XML contents
    //<track>
//      <mp3Location>http://www.rmuitzendinggemist.nl/uitzendinggemist/gezondheid1x02.mp3</mp3Location>
//      <oggLocation>http://www.rmuitzendinggemist.nl/uitzendinggemist/gezondheid1x02.ogg</oggLocation>
//            <creator>Daisha de Wijs</creator>
//            <album>Gezondheid</album>
//            <title>Blauwe bessen en meer</title>
//            <annotation>Je bent overtuigd vegetariër of veganist en wil niets dierlijks eten.</annotation>
//            <image>http://www.radiomerlijn.nl/images/stories/pics/Blauwe_bessen.jpg</image>
//        </track>
    $.get('xml/GezondheidList.xml', function (xml) {
        var $track = $.xml2json(xml);
        //use xml2json to convert each <track> into track[n] json object
        });
</script>
 <script type="text/javascript">
    $(document).ready(function(){ 
      $("#jquery_jplayer_1").jPlayer({
        ready: function () {
          $(this).jPlayer("setMedia", {
            mp3: track1.mp3location,
            ogg: track1.oggLocation
          });
        },
        swfPath: "/js",
        supplied: "mp3, ogg"
      });
    var myPlaylist = new jPlayerPlaylist({
        jPlayer : "#jquery_jplayer_1",
        cssSelectorAncestor: "jp_container_1"
        }, [], {});
    myPlaylist.setPlaylist([
    //load json objects from $tracks
    $tracks.val()
    ]); 
    });
    </script>

有一件事可能是个问题,那就是您在两个不同的场合加载xml并创建播放器。当您尝试设置播放列表时,不能保证xml文件已经加载。也许把代码改成这样:

$(document).ready(function(){ 
//.... other code
$.get('xml/GezondheidList.xml').then(
  function (xml) {
    var $track = $.xml2json(xml);
    console.log($track);
    //use xml2json to convert each <track> into track[n] json object
    myPlaylist.setPlaylist([
      //load json objects from $tracks
      $track.val()
    ]);
  },function(e){
    //$.get error
    console.log("an error:",e);
  }
);

我添加了一些console.log语句。在Chrome中,您可以按F12打开开发工具并查看控制台选项卡。您可以单击记录的对象来检查详细信息。如果你有Firefox,你可以安装Firebug插件并用F12打开它。该日志还记录了可点击对象的详细信息。