2

我有一个 html 模板,该模板在发布时列出了该故事的变量,其中一个是隐藏式字幕文件(如果已为该故事制作了字幕):

var file_cc = "../xml/cc/example.vtt";

在外部 js 文件中,我设置了我的播放器(其他变量来自故事页面):

jwplayer("vplayer").setup({
    icons: false,
    sources: [
       {file: origurl},
       {file: origurlsd}
    ],
    image: origimg,
    width: "70%",
    aspectratio: "16:9",
    abouttext: "...",
    aboutlink: "...",
    skin: "/res/libraries/jwplayer/skins/target-v6-11/glow.xml"
});

然后在那个外部 js 中,我使用 .get() 检测 file_cc var 是否存在

$.get(file_cc, function() {
    console.log("found file")
})

但是现在,在.get() 函数的 .done() 和 fail() 部分中,我想jwplayer("vplayer)用一个tracks:数组进行更新。

我怎么做?

4

1 回答 1

3

不知道您正在使用的完整代码,所以我会做一个有根据的猜测:

var jw = jwplayer("vplayer");
jw.setup({
    icons: false,
    sources: [
       {file: origurl},
       {file: origurlsd}
    ],
    tracks: [{
        file: "cc_file",
        kind: "captions",
        'default': true,
        label: 'English'
    }],
    image: origimg,
    width: "70%",
    aspectratio: "16:9",
    abouttext: "...",
    aboutlink: "...",
    skin: "/res/libraries/jwplayer/skins/target-v6-11/glow.xml"
});
$.get(file_cc, function() {
    console.log("found file");
    var ccList = jw.getCaptionsList();
    var ccList[1] = file_cc;    
    ccList.setCurrentCaptions(1);
    jw.on('complete', done);
    jw.on('error', fail);
    function done() {...}
    function fail() {...}
});

要更了解这种混乱,请参阅:http: //support.jwplayer.com/customer/en/portal/articles/1413089-javascript-api-reference#captions

更新

由于字幕列表完全取决于 JW Player 的单个设置(正如 Ethan 所说),也许您可​​以通过 JW Player 的事件调用 $.get()。

var jw = jwplayer("vplayer");
jw.setup({
    icons: false,
    sources: [
       {file: origurl},
       {file: origurlsd}
    ],
    tracks: [{
        file: "cc_file",
        kind: "captions",
        'default': true,
        label: 'English'
    }],
    image: origimg,
    width: "70%",
    aspectratio: "16:9",
    abouttext: "...",
    aboutlink: "...",
    skin: "/res/libraries/jwplayer/skins/target-v6-11/glow.xml"
});

jw.on('captionsList', function(event){
    $.get('cc_file', function() {...}
});

jw.on('captionsChanged', function(event){...});
于 2015-09-14T22:50:20.100 回答