天天看點

hls.js播放hls直播源

用了video.js來做播放器播放hls和rtmp直播源之後,這次用hls.js來播放Hls直播源

video.js和hls.js的差別和優缺點

video.js:

  1. 優點:功能比較強大,有很多功能封裝好了,而且有自己的一套UI,在不同浏覽器下顯示比較一緻
  2. 缺點:包比較大,實作hls直播的時候其實是内嵌了hls.js的代碼,實際上是運用了hls.js,而且由于封裝的ui和功能,使其不夠純淨,不夠靈活,修改ui的時候要用到其他的插件,有點畫蛇添足的感覺

hls.js:

  1. 優點:包比較小,很純淨,UI可以根據自己的業務自擴充,自己封裝功能和UI,比較切合自己開發的直播播放器,而且專業直播HLS
  2. 缺點:沒有封裝好的UI,功能上也需要自己去實作

hls.js播放hls直播源 (要放在伺服器上)

<!DOCTYPE html>
<html  dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>hls.js</title>
    <link rel="stylesheet" href="./index.css" target="_blank" rel="external nofollow" >
    <script src="https://cdn.jsdelivr.net/npm/[email protected]"></script>
  </head>
  <body>
    <video id="video" controls></video>
    <script src="./index.js" charset="utf-8"></script>
  </body>
</html>
           

index.js:

var Hls = window.Hls
var url = 'http://localhost:8765/hls/movie.m3u8'
if (Hls.isSupported()) {
  var hls = new Hls()
  hls.loadSource(url)
  hls.attachMedia(video)
  hls.on(Hls.Events.MANIFEST_PARSED, function () {
    // video.play()
  })
} else if (video.canPlayType('application/vnd.apple.mpegurl')) {
  video.src = url
  video.addEventListener('canplay', function () {
    // video.play()
  })
}
           

至于播放自己的樣式和功能,可以根據自己的需要和興趣自己去添加