HTML5视频播放约100秒后卡顿/停止,求排查方案
HTML5视频播放约100秒后自动停止问题
所有视频无论采用哪种加载方式,播放到约100秒时都会停止。
相关背景
这是一个视频流应用,加载视频时会从指定的任意startTime位置开始播放。所有视频都是编码正确的.MP4格式,支持分段流式传输。
已尝试的解决方法
直接设置video的src属性
将video的src直接设为视频URL,加载后设置startTime并播放,但无论startTime设为多少,播放约100秒后都会停止。暂停一会儿后可以继续播放,但最终还是会再次停止。
<video></video> <script> let video = document.querySelector( "video" ); video.src = "/media/S01E01.mp4"; video.load(); video.currentTime = 240; video.play(); </script>
经检查视频已完全缓冲,但问题依旧:
video.buffered.end( 0 ) - video.buffered.start( 0 ); // 输出结果:1383(视频总时长,单位:秒)
通过Fetch下载完整视频转为Blob作为src
尝试用Fetch下载完整视频,将响应转为Blob后设置为video的src,结果完全相同:播放约100秒后暂停/停止,暂停片刻后可继续播放,但最终仍会再次停止。
<video></video> <script> fetch( "/media/S01E01.mp4" ) .then( response => response.blob() ) .then( ( blob ) => { let video = document.querySelector( "video" ); let src = URL.createObjectURL( blob ); video.src = src; video.currentTime = 360; video.play(); }) </script>
尝试MediaStream API
因为需要从随机startTime开始播放,MediaStream API无法正常工作。仅请求视频初始字节时可以播放,但请求完整视频时Fetch请求会中止,报错:
DOMException: The Operation Was Aborted
目前正在尝试用多请求方式使用MediaStream API,但还没结果,担心还是解决不了问题。
请问有人知道这个问题的原因吗?
内容的提问来源于stack exchange,提问作者mcbeav
相关产品推荐
相关产品推荐

