我们有一个视频流平台,用户可以在其中播放实时视频流并将其与一组演示幻灯片同步。为了在 iOS 上显示广播,我们使用 HTTP Live Streaming。为了在 iOS 上的流中正确的时间显示幻灯片,我们正在监听qt_timedmetadataupdated
Apple 的 Quicktime Javascript API 提供的事件。该方法的描述如下:
http://www.wowza.com/forums/content.php?355-How-to-debug-timed-data-events-%28ID3-tags%29-from-Apple-HLS-streams-in-iOS-devices
但是,在 iOS8 中,此方法不再有效,因此我们正在尝试寻找替代解决方案。
有谁知道我们如何做到这一点?
我取得的唯一进展是检查“带内元数据文本轨道”,如下所述:
https://github.com/videojs/videojs-contrib-hls#in-band-metadata
我在下面使用 flowplayer 设置了一个示例测试页面flashls插件:
http://jsbin.com/vohicoxegi/1/edit?html,js,输出
在代码中,我创建了一个间隔,每 500 毫秒检查一次文本轨道是否存在,其kind
财产是metadata
。我注意到,当一些定时元数据被注入到流中时,就会创建这些文本轨道之一。但问题是我无法访问定时元数据中的数据,我需要正确同步(前面提到的)幻灯片。
请注意,我只关心直播。播放现有的媒体文件不是问题。
钢铁迈克的解决方案几乎是正确的。当赛道事件发生时,您必须设置其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
});
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)