我认为文本轨道是要走的路。之前我也使用过qt_timedmetadataupdated,并且在ios8上运行得很好,就像这样:
$(videoElement).textTracks.addEventListener('addTrack', function(addTrackEvent) { var track = addTrackEvent.track; track.addEventListener('cuechange', function(cueChangeEvent) { and so on... }) })
Iron Mike的解决方案几乎是正确的。当赛道事件发生时,你必须设置它 mode 财产到 hidden 否则 cuechange 事件不会发生。这是一个完整的例子:
mode
hidden
cuechange
$(videoElement)[0].textTracks.addEventListener('addtrack', function(addTrackEvent) { var track = addTrackEvent.track; track.mode = 'hidden'; track.addEventListener('cuechange', function(cueChangeEvent) { // do what you want with the cueChangeEvent }); });