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>
相关推荐
中微极客17 分钟前
Gemini Omni Flash:对话式AI视频编辑新范式
人工智能·音视频·新人首发
阿拉斯攀登43 分钟前
数据通道:RTCDataChannel 可靠与不可靠传输
音视频·webrtc·实时音视频·媒体·视频编解码
EasyDSS2 小时前
视频直播点播/音视频点播/云点播/云直播EasyDSS智慧校园:一屏直播,全场景重构“教、学、练、测、评”
重构·音视频
VidDown3 小时前
在线视频下载器技术解析:原理、工具与合规实践
网络·音视频·实时音视频·视频编解码·视频下载
REDcker3 小时前
腾讯TRRO SDK深度剖析
音视频·webrtc·实时音视频·直播·rtc·腾讯
阿拉斯攀登6 小时前
FFmpeg 入门:命令行的 20 个常用场景
ffmpeg·音视频·webrtc·视频编解码
ai产品老杨16 小时前
H264 H265视频分析常见问题和排查清单
人工智能·算法·音视频
“码”力全开17 小时前
AI视频分析API性能优化指南
人工智能·性能优化·音视频
美狐美颜SDK开放平台19 小时前
Android/iOS直播APP平台开发中的视频美颜SDK优化技巧
android·ios·音视频·美颜sdk·第三方美颜sdk
AI服务老曹20 小时前
视觉算法模型管理完整流程:多版本上线、灰度发布与回滚的落地实践
人工智能·docker·音视频