html视频播放2s左右就自动停止

html视频播放2s左右就自动停止

代码如下

var player1 = document.getElementById('live-video');
    if (flvjs.isSupported()) {
        var flvPlayer = flvjs.createPlayer({
            type: 'flv',
            isLive: true,
            url: 'http://localhost:81/live?app=live&stream=1'
        },{
            enableStashBuffer:false,
            isLive:true,
            autoCleanupSourceBuffer:true
        });
        flvPlayer.attachMediaElement(player1);
        flvPlayer.load();
        flvPlayer.play();
    }

还报一长串错

img

这个问题可能与你的视频缓冲有关。对于这个问题,可以尝试以下几种解决方案:

  1. 调整视频缓冲的大小。可以通过以下方式:

    flvPlayer.config({
     autoCleanupSourceBuffer:true,
     stashInitialSize: 128,
     enableWorker: true,
     enableStashBuffer: true,
     stashBufferSize: 512,
     bufferLive: true
    });
    

    其中,stashInitialSize表示初始缓冲长度,stashBufferSize表示缓冲总长度。可以适当调整这两个参数的值。

  2. 清除源缓冲区。可以在播放器停止时清除源缓冲区,在播放时重新加载源文件。可以通过以下方式:

    flvPlayer.unload();
    flvPlayer.detachMediaElement();
    flvPlayer.attachMediaElement(player1);
    flvPlayer.load();
    flvPlayer.play();
    
  3. 确保你的视频文件是可用的,并且没有任何问题。如果视频文件本身存在问题,则无论你如何调整缓冲区,问题都无法解决。

你看看这个 我测试是通过的了 里面有属性可以监听到的

    <video id="liv" muted="true" autoplay="">
        <source src="../html5和css3/music/20230426-175543.Ogg">
        </source>
    </video>

    <script>
        var liv = document.getElementById("liv");
        liv.addEventListener('timeupdate', (event) => {
            // console.log(event);
            if (event.timeStamp >= 3100) {
                liv.pause();
            }
            
        });
    </script>