VideoJs TextTracks线索空(VideoJs TextTracks Cues empt

2019-10-19 20:48发布

我需要能够得到线索阵列从TextTracks在VideoJs对象。

我有以下代码:

videojs("example_video_1", {}, function(){
   // Player (this) is initialized and ready.
    var aTextTrack =  this.textTracks()[0];

    aTextTrack.show();
    var theArray = this.textTracks()[0]['$'];
    console.log(theArray);
    console.dir(this.textTracks()[0]['$']);
    // EXAMPLE: Start playing the video.
    this.play();

}); 

该变种theArray打印为空,但console.dir打印数组的内容。 我怎样才能获得这些价值? 我知道它使用JavaScript ASYC变量相关。

干杯

Answer 1:

这是正确的答案。 我花了一段时间来破解它,因为没有上videoJS多文档

videojs("example_video_1", {}, function(){
    // Player (this) is initialized and ready.
    var aTextTrack =  this.textTracks()[0];
    aTextTrack.on('loaded', function() {
            console.log('here it is');
            cues = aTextTrack.cues();
            console.log('Ready State', aTextTrack.readyState()) 
            console.log('Cues', cues);
    });

    aTextTrack.show();//this method call triggers the subtitles to be loaded and loaded trigger
    this.play();

});


Answer 2:

@Adrian; 这些都是VideoJS的精缩内部对象,如果您将其用于您的代码将渲染工作过时与VideoJS的下一个版本。

这将是更好的打入了VideoJS如果可能的API。 在这种情况下,他们没有一个API来读出字幕,所以你有几种选择:

  1. 使用CSS再整,你想让它的字幕显示对象。

  2. 使用JS扫描字幕显示HTML和火的文字变化时也是如此。 然后,你可以捕获文本,并用它在你的应用程序JS你想如何。

扫描一个div会在浏览器上密集的,所以我想如果可能的话建议#1。



文章来源: VideoJs TextTracks Cues empty