chrome播放m3u8視頻失敗


由於項目后台需要播放m3u8視頻,但此視頻格式在移動端和Safari支持比較友善但是PC瀏覽器中都不太盡如人意,所以想在Chrome中播放只能借助第三方插件來播放.

有一款Video.js插件極大的簡化前端視頻的處理

優點

  • 免費開源,可以在Github上獲取它的最新代碼 vidoe.js
  • 簡單易用getting-started
  • 幾乎兼容所有瀏覽器,自動判斷是使用H5還是使用flash播放
  • 界面可以自定義,純javascript和css打造,說明文檔也非常的詳細

第一步:引入Video.js和video.css

這里我們用遠程資源

<link href="https://unpkg.com/video.js/dist/video-js.css" rel="stylesheet">
    <script src="https://unpkg.com/video.js/dist/video.js"></script>

由於m3u8視頻的播放還需要額外插件videojs-contrib-hls.js才可支持,所以再引入videojs-contrib-hls.js即可

<script src="https://unpkg.com/videojs-contrib-hls/dist/videojs-contrib-hls.js"></script>

第二步:加入video標簽

<video id="my_video_1" class="video-js vjs-default-skin fillWidth" controls width="640" height="268"data-setup='{}'>
  <source src="http://10.57.180.133/coil/_definst_/0/0/0/000000000269_app.smil/playlist.m3u8" type="application/x-mpegURL">
</video>//如果不用videojs手動啟用,那黃色部分代碼是必須要有的,否則video.js無法找到該作用於哪個對象導致將失效

試過視頻是在iframe中,由於iframe的安全機制,必須稍許設置才可正常全屏功能.

第四步:iframe允許全屏

<iframe allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true" width='100%' height='98%' scrolling='no' frameborder='0' src='..............'></iframe>

只要包含了視頻的iframe全都要加黃色背景代碼才可正常全屏.

由於利用了第三方js輔助播放視頻,不可避免的video.js會用腳本的方式請求資源在做處理,由於視頻資源往往是另一台服務器,所以這里涉及到跨域問題,所以要保證視頻資源是允許跨域訪問的.

第五步:允許服務器跨域

這里用.net跨域舉例:

在<system.webServer>節點下配置如下代碼

 到這里就結束了,效果如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM