Skip to content

MSE 支持

HLS

需要在 WPlayer.min.js 前面加载 hls.js

html
<div id="wplayer"></div>
<script src="hls.min.js"></script>
<script src="WPlayer.min.js"></script>
js
const player = new WPlayer({
  container: document.getElementById('wplayer'),
  video: {
    url: 'demo.m3u8',
    type: 'hls',
  },
  pluginOptions: {
    hls: {
      // hls config
    },
  },
});
console.log(player.plugins.hls); // Hls 实例
js
// 另一种方式,使用 customType
const player = new WPlayer({
  container: document.getElementById('wplayer'),
  video: {
    url: 'demo.m3u8',
    type: 'customHls',
    customType: {
      customHls: function (video, player) {
        const hls = new Hls();
        hls.loadSource(video.src);
        hls.attachMedia(video);
      },
    },
  },
});

MPEG DASH

需要在 WPlayer.min.js 前面加载 dash.js

html
<div id="wplayer"></div>
<script src="dash.min.js"></script>
<script src="WPlayer.min.js"></script>
js
const player = new WPlayer({
  container: document.getElementById('wplayer'),
  video: {
    url: 'demo.mpd',
    type: 'dash',
  },
  pluginOptions: {
    dash: {
      // dash config
    },
  },
});
console.log(player.plugins.dash); // Dash 实例
js
// 另一种方式,使用 customType
const player = new WPlayer({
  container: document.getElementById('wplayer'),
  video: {
    url: 'demo.mpd',
    type: 'customDash',
    customType: {
      customDash: function (video, player) {
        dashjs.MediaPlayer().create().initialize(video, video.src, false);
      },
    },
  },
});

MPEG DASH (Shaka)

需要在 WPlayer.min.js 前面加载 shaka-player.compiled.js

html
<div id="wplayer"></div>
<script src="shaka-player.compiled.js"></script>
<script src="WPlayer.min.js"></script>
js
const player = new WPlayer({
  container: document.getElementById('wplayer'),
  screenshot: true,
  video: {
    url: 'demo.mpd',
    type: 'shakaDash',
    customType: {
      shakaDash: function (video, player) {
        var src = video.src;
        var playerShaka = new shaka.Player(video); // 将会修改 video.src
        playerShaka.load(src);
      },
    },
  },
});

FLV

需要在 WPlayer.min.js 前面加载 flv.js

html
<div id="wplayer"></div>
<script src="flv.min.js"></script>
<script src="WPlayer.min.js"></script>
js
const player = new WPlayer({
  container: document.getElementById('wplayer'),
  video: {
    url: 'demo.flv',
    type: 'flv',
  },
  pluginOptions: {
    flv: {
      // refer to https://github.com/bilibili/flv.js/blob/master/docs/api.md#flvjscreateplayer
      mediaDataSource: {
        // mediaDataSource config
      },
      config: {
        // config
      },
    },
  },
});
console.log(player.plugins.flv); // flv 实例
js
// 另一种方式,使用 customType
const player = new WPlayer({
  container: document.getElementById('wplayer'),
  video: {
    url: 'demo.flv',
    type: 'customFlv',
    customType: {
      customFlv: function (video, player) {
        const flvPlayer = flvjs.createPlayer({
          type: 'flv',
          url: video.src,
        });
        flvPlayer.attachMediaElement(video);
        flvPlayer.load();
      },
    },
  },
});

根据 MIT 许可证发布