Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取HTML5视频的持续时间(实时流)_Html_Video_Live_Http Live Streaming - Fatal编程技术网

获取HTML5视频的持续时间(实时流)

获取HTML5视频的持续时间(实时流),html,video,live,http-live-streaming,Html,Video,Live,Http Live Streaming,我正在寻找从flash(频闪)切换到HTML5解决方案(使用带DASH或HLS的媒体源扩展)的选项。 根据HTML5视频规范,我们无法获得实时流视频的持续时间 duration属性必须返回媒体资源结束的时间, 在媒体时间线上,以秒为单位。如果没有可用的媒体数据,则 属性必须返回非数字(NaN)值。如果媒体资源是 已知为无界(例如,流式广播),则该属性必须返回 正无穷大值 我的实时流不是一个“滑动窗口”,这意味着我们有一个固定的开始日期。我目前正在使用频闪灯播放器,它实际上增加了播放的持续时间,而

我正在寻找从flash(频闪)切换到HTML5解决方案(使用带DASH或HLS的媒体源扩展)的选项。 根据HTML5视频规范,我们无法获得实时流视频的持续时间

duration属性必须返回媒体资源结束的时间, 在媒体时间线上,以秒为单位。如果没有可用的媒体数据,则 属性必须返回非数字(NaN)值。如果媒体资源是 已知为无界(例如,流式广播),则该属性必须返回 正无穷大值

我的实时流不是一个“滑动窗口”,这意味着我们有一个固定的开始日期。我目前正在使用频闪灯播放器,它实际上增加了播放的持续时间,而HTML5总是返回
无限


我想知道是否有一些选项可以让我自己保持一个持续时间(例如,通过解析片段,这在某种程度上可以做到这一点)

我没有足够的声誉发表评论,所以我会在这里输入

我认为最好查看
HTMLMEDIALEMENT
.seakable
.buffered
属性。您可以使用返回
时间范围
对象的
.buffered
来跟踪流在媒体中的持续时间,但媒体元素本身无法知道流的长度

问题是,
.buffered
可能并不总是告诉您“有多少流”存在,例如,如果您暂停很长时间

当我在Android虚拟设备和Chrome中的HLS流上测试他们的行为时,经过几秒钟的播放,buffered返回了长度为1和
video的
TimeRanges
对象。buffered.end(0)
为0,而
.seekable
返回了相同的结果,但
video.seekable.end(0)=无穷大


如果您想要精确的数据,我同意解析库(例如解析HLS播放列表的持续时间)是最好的选择,尽管一点也不优雅。

此处相同,iPhone中的无穷大相同问题,尝试停止媒体跟踪,然后访问视频持续时间属性,但给了我无穷大。