首先要对不起,如果我问的已经回答了问题,但我现在找不到也不能解决这个问题。
我正在开发一个在独立模式下在iPad上运行的Web应用程序。
有一个<video>
标签,我正在播放实时流视频,我认为这可能是问题,因为我没有在静态文件上测试错误事件。
我的问题是我无法将标记错误或错误事件绑定到标记,以便如果由于某种原因导致流失败,我可以重新启动它。
我的视频标记如下所示:
<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内部&gt; Safari&gt; <独立模式> javascript网络应用程序&gt;视频标签&gt;播放HLS(http直播)流
修改 它确实检测到加载视频流失败但我需要检测流在播放期间何时停止并在此情况下重新启动流。
由于
答案 0 :(得分:0)
我认为您应该在onstalled
元素中监听video
事件。视频元素是一种特殊的媒体元素,事件列表可以在w3schools找到。
请记住,浏览器支持仍然相当早,并非所有事件都必须实现。我建议为所有列出的事件创建一个处理程序,并查看当流停止时是否确实有一个事件被触发。我怀疑onreadystatechange
或onsuspend
事件也可以帮助您。