获取HTML5视频的持续时间(实时流)
我正在寻找从flash(频闪)切换到HTML5解决方案(使用带DASH或HLS的媒体源扩展)的选项。 根据HTML5视频规范,我们无法获得实时流视频的持续时间 duration属性必须返回媒体资源结束的时间, 在媒体时间线上,以秒为单位。如果没有可用的媒体数据,则 属性必须返回非数字(NaN)值。如果媒体资源是 已知为无界(例如,流式广播),则该属性必须返回 正无穷大值 我的实时流不是一个“滑动窗口”,这意味着我们有一个固定的开始日期。我目前正在使用频闪灯播放器,它实际上增加了播放的持续时间,而HTML5总是返回获取HTML5视频的持续时间(实时流),html,video,live,http-live-streaming,Html,Video,Live,Http Live Streaming,我正在寻找从flash(频闪)切换到HTML5解决方案(使用带DASH或HLS的媒体源扩展)的选项。 根据HTML5视频规范,我们无法获得实时流视频的持续时间 duration属性必须返回媒体资源结束的时间, 在媒体时间线上,以秒为单位。如果没有可用的媒体数据,则 属性必须返回非数字(NaN)值。如果媒体资源是 已知为无界(例如,流式广播),则该属性必须返回 正无穷大值 我的实时流不是一个“滑动窗口”,这意味着我们有一个固定的开始日期。我目前正在使用频闪灯播放器,它实际上增加了播放的持续时间,而
无限
我想知道是否有一些选项可以让我自己保持一个持续时间(例如,通过解析片段,这在某种程度上可以做到这一点) 我没有足够的声誉发表评论,所以我会在这里输入 我认为最好查看
HTMLMEDIALEMENT
的.seakable
和.buffered
属性。您可以使用返回时间范围
对象的.buffered
来跟踪流在媒体中的持续时间,但媒体元素本身无法知道流的长度
问题是,.buffered
可能并不总是告诉您“有多少流”存在,例如,如果您暂停很长时间
当我在Android虚拟设备和Chrome中的HLS流上测试他们的行为时,经过几秒钟的播放,buffered返回了长度为1和video的TimeRanges
对象。buffered.end(0)
为0,而.seekable
返回了相同的结果,但video.seekable.end(0)=无穷大
如果您想要精确的数据,我同意解析库(例如解析HLS播放列表的持续时间)是最好的选择,尽管一点也不优雅。此处相同,iPhone中的无穷大相同问题,尝试停止媒体跟踪,然后访问视频持续时间属性,但给了我无穷大。