如果我问的是已经回答过的问题,首先要说抱歉,但我现在找不到,也解决不了这个问题。
我正在开发一个在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>Safari>独立模式>javascript web应用程序>视频标签>播放HLS(http直播)流
编辑:它确实检测到加载视频流失败,但我需要检测流在播放过程中何时停止,并在这种情况下重新启动流。
感谢
我认为您应该在video
元素中侦听onstalled
事件。视频元素是一种特殊的媒体元素,事件列表可以在w3schools中找到。
请记住,浏览器支持还很早,并且并非所有事件都必须实现。我建议为所有列出的事件创建一个处理程序,并查看流停止时是否确实有事件被触发。我怀疑onreadystatechange
或onsuspend
事件也可以帮助您。