我正在尝试通过vtt
与video.js
文件中加载的提示进行交互。我可以从浏览器检查控制台轻松地重复,但从来没有从videojs
加载成功函数。我怀疑textTrack
被解析(我可以访问id,kind,mode属性)但是没有读取(cues为null)。如果有办法强制读取曲目或者我应该收听回调或事件,我在文档或来源中找不到任何地方。
感谢您的帮助!
基本的video.js调用。工作正常,显示字幕和视频:
<video id="video" ..... >
<source ..... />
<track kind="captions" src="captions.vtt" srclang="en" default />
</video>
js,尝试访问提示:
<script>
videojs.options.flash.swf = '/static/js/video-js.swf';
var player = videojs('video', {}, function(){
var tracks = player.textTracks();
var captions; // captions track
// find all the tracks we care about
for (var i=0; i<tracks.length; i++) {
var isCaptions = tracks[i].kind === "captions"
if (isCaptions) {
captions = tracks[i];
}
}
console.log(captions, captions.id, captions.kind, captions.mode, captions.cues);
player.play();
}
);
</script>
的console.log:
t.t {d: t.Ea.extend.d, X: Array[0], Ga: Array[0], addEventListener: function, vdata1427596024498: 320…}
"vjs_text_track_316" "captions" "hidden" null
交互式控制台:
> c = player.textTracks()[0].cues[0].text
<- "first caption"
使用Google Chrome版本4.12.5
41.0.2272.104 (64-bit)
)进行测试