我正在寻找一种在HTML5视频元素报告网络错误(HTML5 media element error code 2)之前设置超时的方法
在测试时,我注意到如果我停止互联网连接,视频元素会挂起,并且在显示媒体错误代码2之前似乎在很长一段时间内都会缓冲。我可以减少这个时间吗?
还有一些情况,它根本不报告错误,它似乎永远缓冲。有这个原因吗?
答案 0 :(得分:1)
不幸的是我认为你不能,这取决于每个浏览器厂商的实施。根据资源获取算法中的HTML5视频spec,您可以阅读:
停顿超时是用户代理定义的时间长度,应该是大约三秒。 当主动尝试获取媒体数据的媒体元素未能在持续时间等于停顿超时的情况下接收任何数据时,用户代理必须将任务排队以触发一个名为在该元素处停止的简单事件
用户代理可能允许用户有选择地阻止或减慢媒体数据下载速度。当媒体元素的下载完全被阻止时,用户代理必须表现得好像它已经停止(而不是像连接被关闭一样)。下载速率也可以由用户代理自动地限制,例如,用户代理。平衡下载与共享相同带宽的其他连接。
用户代理可能决定不会随时下载更多内容,例如在缓冲五分钟的一小时媒体资源之后,等待用户决定是否播放资源,或者在等待交互式资源中的用户输入时。 当媒体元素的下载暂停时,用户代理必须将networkState设置为NETWORK_IDLE并将任务排队以在该元素上触发名为suspend的简单事件。如果以及何时恢复资源下载,则用户代理必须将networkState设置为NETWORK_LOADING 。