1

我想将返回的 ajax 请求对象推送到 JWplayer 7 多源对象,返回的 ajax 请求在控制台(console.log)中如下所示:

对象{sd_src:对象,hd_src:对象}

并且 sd_src & hd_src 对象包含 ( console.log) :

对象文件:“videofile.mp4”标签:“HD” sd_src:对象{相同的第一个obj}

我创建空对象dataSources = [];以在 for in 循环中将视频源推送到它

然后我创建一个 for in 循环来获取对象属性并将它们推送到dataSources这样的状态:

 for (var p in ReturnData.srcs) {
    if( ReturnData.srcs.hasOwnProperty(p) ) {
      dataSources.push( ReturnData.srcs[p] );
    }
  }

最后一点我创建了 JWplayer 7 设置:

jwplayer.key="myjwplayer.key";
       var playerInstance = jwplayer("dv-watchvideo");
       var dvPlayer = playerInstance.setup({
       sources : **dataSources** ,
       image: '',
       width: 558,
       height: 360,
       type: 'mp4',
       primary: "flash",
       startparam: ReturnData.startparam,
       skin: {
         url: "thin.min.css",
           name: "thin",
              }
        });

注意:两颗星之间的 var dataSources

另一个问题是,即使当我尝试在控制台中记录 var 时将对象推送到 dataSources 中时,总是返回带有未定义键的对象,但是当我删除 jwplayer 设置时,dataSources 推送工作!

工作codepen 示例但是当我使用 ajax 返回数据时将不起作用。如果我的方法是错误的,有没有其他方法可以做到这一点?

4

1 回答 1

1

根据我之前评论中的建议,我对您的语法进行了一些更改。尝试将您的 ajax 源添加到此笔:

http://codepen.io/simsketch/pen/KVMVKe

代码摘录:

jwplayer("player").setup({
  playlist: [{
    sources : dataSources 
  }],
  image: '',
  ...

我认为您的主要错误是没有按照此处的说明添加播放列表包装器:https: //support.jwplayer.com/customer/portal/articles/1710454-configuring-multiple-sources

于 2015-12-21T03:48:11.950 回答