我需要能够得到线索阵列从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变量相关。
干杯
这是正确的答案。 我花了一段时间来破解它,因为没有上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();
});
@Adrian; 这些都是VideoJS的精缩内部对象,如果您将其用于您的代码将渲染工作过时与VideoJS的下一个版本。
这将是更好的打入了VideoJS如果可能的API。 在这种情况下,他们没有一个API来读出字幕,所以你有几种选择:
使用CSS再整,你想让它的字幕显示对象。
使用JS扫描字幕显示HTML和火的文字变化时也是如此。 然后,你可以捕获文本,并用它在你的应用程序JS你想如何。
扫描一个div会在浏览器上密集的,所以我想如果可能的话建议#1。