Html播放m3u8视频

一,首先现在hls.js

hls.js

二,html代码

html 复制代码
<video id="video" webkit-playsinline playsinline x5-playsinline controls
      width="100%" height="100%"
      poster="/statics/video/poster.png">
                    您的浏览器不支持视频播放
</video>
<script src="/statics/js/hls.js"></script>
<script>
    document.addEventListener('DOMContentLoaded', function() {
        const video = document.getElementById('video');

        // 视频源地址
        const videoSrc = "/statics/video/jzauntexam.m3u8";

        // 初始化 HLS 播放器
        function initHls() {
            if (Hls.isSupported()) {
                const hls = new Hls({
                    enableWorker: true,
                    lowLatencyMode: true,
                    backBufferLength: 90
                });

                hls.loadSource(videoSrc);
                hls.attachMedia(video);

                hls.on(Hls.Events.MANIFEST_PARSED, function(event, data) {
                    console.log('HLS manifest parsed', data);

                    // 尝试自动播放
                    //attemptPlay();
                });

                hls.on(Hls.Events.MEDIA_ATTACHED, function() {
                    console.log('HLS media attached');
                });

                hls.on(Hls.Events.ERROR, function(event, data) {
                    console.error('HLS error:', data);
                    handleError(data);
                });

                hls.on(Hls.Events.MEDIA_ATTACHING, function() {
                    console.log('HLS media attaching');
                });
            }
            // Safari 浏览器原生支持 HLS
            else if (video.canPlayType('application/vnd.apple.mpegurl')) {
                video.src = videoSrc;
                video.addEventListener('loadedmetadata', function() {
                    console.log('Safari HLS loaded');

                    // 尝试自动播放
                    //attemptPlay();
                });
                video.addEventListener('error', function(e) {
                    console.error('Safari HLS error:', e);
                });
            }
            // 不支持 HLS 的情况
            else {
                console.error('HLS is not supported in this browser');
                alert('您的浏览器不支持播放该视频格式');
            }
        }

        // 尝试自动播放
        function attemptPlay() {
            const playPromise = video.play();
            if (playPromise !== undefined) {
                playPromise
                    .then(() => {
                        console.log('自动播放成功');
                    })
                    .catch(error => {
                        console.log('自动播放被阻止:', error);
                    });
            }
        }

        // 错误处理
        function handleError(error) {
            if (error.type === Hls.ErrorTypes.MEDIA_ERROR) {
                console.warn('media error encountered, try to recover');
            }
            if (error.fatal) {
                switch(error.type) {
                    case Hls.ErrorTypes.NETWORK_ERROR:
                        console.log('network error');
                        break;
                    case Hls.ErrorTypes.MEDIA_ERROR:
                        console.log('media error');
                        break;
                    default:
                        console.log('other error');
                }
            }
        }

        // 初始化 HLS
        initHls();

        // 事件监听
        video.addEventListener('waiting', () => {
        });
        video.addEventListener('playing', () => {
        });
        video.addEventListener('timeupdate', ()=>{
            //监听播放进度
            if (video.currentTime > 0 && video.currentTime >= video.duration){
                app.ksbtndisable = false;
            }
        });
    });
</script>
相关推荐
REDcker5 天前
WebCodecs VideoDecoder 的 hardwareAcceleration 使用
前端·音视频·实时音视频·直播·webcodecs·videodecoder
gihigo19985 天前
基于TCP协议实现视频采集与通信
网络协议·tcp/ip·音视频
山河君5 天前
四麦克风声源定位实战:基于 GCC-PHAT + 最小二乘法实现 DOA
算法·音视频·语音识别·信号处理·最小二乘法·tdoa
音视频牛哥5 天前
Android平台RTMP/RTSP超低延迟直播播放器开发详解——基于SmartMediaKit深度实践
android·人工智能·计算机视觉·音视频·rtmp播放器·安卓rtmp播放器·rtmp直播播放器
qq_416276425 天前
通用音频表征的对比学习
学习·音视频
美狐美颜sdk5 天前
Android全局美颜sdk实现方案详解
人工智能·音视频·美颜sdk·视频美颜sdk·美狐美颜sdk
EasyDSS5 天前
私有化部署EasyDSS视频点播能力:全链路视频技术赋能,打造企业级视听新体验
音视频·hls·m3u8·点播技术·智能转码
qq_416276425 天前
DeLoRes——一种通用的音频表征学习新方法(DeLoRes(基于 Barlow Twins 的冗余最小化方法)
学习·音视频
Q_4582838685 天前
从定位到视频:808 + 1078 在各行业的落地实践
音视频
山顶望月川5 天前
实测MiniMax-Hailuo-02:当“开工大吉“变成“无字天书“,国产AI视频模型的能与之不能
人工智能·音视频