0

如果我问的是已经回答的问题,首先要说抱歉,但我目前找不到也无法解决这个问题。

我正在开发一个在 iPad 上以独立模式运行的 Web 应用程序。有一个<video>标签,我正在用它播放直播视频,我认为这可能是问题所在,因为我没有在静态文件上测试错误事件。我的问题是我无法将 onerror 或错误事件绑定到标签,因此如果由于某种原因流失败,我可以重新启动它。

我的视频标签如下所示:

<video id="video_tag" preload webkit-playsinline autoplay="autoplay" x-webkit-airplay="allow">
<source type="video/mp4" src="http_stream_url"></source>
</video>

我曾尝试onerror="alert('error')"直接添加视频标签,但没有成功。

我试图直接将事件侦听器添加到视频标签,document.getElementById("video_tag").addEventListener('error', function(event) { alert('error'); }, true);但没有成功。

我试图将事件侦听器添加到源标签,因为有人指出错误事件是由源标签而不是视频标签触发的,但它不起作用。

我也试过贴上onerror="alert('error')"源标签,没用。

请注意,这是在 iPad > Safari > 独立模式 > javascript Web 应用程序 > 视频标签 > 播放 HLS(http 实时流)流中

编辑: 它确实检测到加载视频流失败,但我需要检测流在播放期间何时停止并在这种情况下重新启动流。

谢谢

4

1 回答 1

0

我认为你应该在元素中监听onstalled事件。video视频元素是一种特殊的媒体元素,事件列表可以在w3schools中找到。

请记住,浏览器支持还很早,并不是所有的事件都必须实现。我建议为所有列出的事件创建一个处理程序,并查看流停止时是否确实触发了一个事件。我怀疑onreadystatechangeoronsuspend事件也可以帮助你。

于 2013-09-04T20:01:18.463 回答