西瓜播放器 HTML5 video video.js 播放器 HTML5播放器 mp4 hls hls.js flv flv.js dash dash.js 无缝切换

xgplayer-mp4

xgplayer支持在支持mse的环境下对mp4视频进行range请求并控制缓存播放

包名称 xgplayer-mp4

注意

  1. 使用的时候必须确认mp4地址支持当前页面域名跨域请求,并且支持range请求
  2. mp4地址必须支持当前页面地址进行跨域请求**

安装

npm i xgplayer-mp4@version --save
npm i xgplayer@version --save

使用

npm

import Player from "xgplayer"
import Mp4Plugin from "xgplayer-mp4"
import "xgplayer/dist/xgplayer.min.css"

const player = new Player({
    url,
    id,
    autoplay: true,
    height: window.innerHeight,
    width: window.innerWidth,
    plugins: [Mp4Plugin],
    mp4plugin: {
        maxBufferLength: 30,
        minBufferLength: 10,
        reqOptions:{
            mode: 'cors',
            method: 'POST',
            headers: { // 需要带的自定义请求头
                'x-test-header': 'rrrr'
            },
        }
        // ... 其他配置
    }
})

cdn

<!--引入css-->
<link rel="stylesheet" href="https://unpkg.byted-static.com/xgplayer/{version}/dist/index.min.css"/>
<!--引入js-->
<script src="https://unpkg.byted-static.com/xgplayer/{version}/dist/index.min.js"></script>
<script src="https://unpkg.byted-static.com/xgplayer-mp4/{version}/dist/index.min.js"></script>
<script>
    new Player({
        url,
        id,
        autoplay: true,
        height: window.innerHeight,
        width: window.innerWidth,
        plugins: [Mp4Plugin],
        mp4plugin: {
            maxBufferLength: 30,
            minBufferLength: 10,
            reqOptions:{
                mode: 'cors',
                method: 'POST',
                headers: { // 需要带的自定义请求头
                    'x-test-header': 'rrrr'
                },
            }
            // ... 其他配置
        }
    })
</script>

配置

配置字段默认值含义
maxBufferLength40播放的最大的buffer长度(s)
minBufferLength5播放的最小的buffer长度(s)
disableBufferBreakCheckfalse是否开启卡顿超时检测
waitingTimeOut15s卡顿超时时间
waitingInBufferTimeOut5s在buffer区间内的卡顿超时时间
waitJampBufferMaxCnt3一次播放中在buffer区间内卡顿超时最多可以seek调整几次
chunkSize15625第一次请求的数据的size长度
tickInSeconds0.1驱动下载的timer的时间间隔
segmentDuration5s一次下载数据的最小视频时长
onProcessMinLen1024fetch每次回调数据的最小长度
retryCount2loader请求失败时的重试次数
retryDelay1000重试的时间间隔(ms)
timeout3000loader请求的超时时间(ms)
enableWorkerfalsetransmux是否使用worker