CRMEB知識付費系統小課堂——如何支持M3U8格式播放的方法

CRMEB知識付費系統是一款方便二開的內容付費+微商城系統;支持講師入駐,通過直播、視頻、音頻、圖文、題庫等多種內容形式,快速實現內容變現。
對于很多開發者在了解我們知識付費系統的時候,對知識付費如何支持M3U8格式播放的方法想進行了解,下面就跟小編一起看下如何支持M3U8格式播放。
當前知識付費使用阿里云web播放器作為視頻播放器。阿里云web播放器本身支持MP4和M3U8格式播放,由于知識付費底層引入RequireJS,導致阿里云web播放器Hls擴展插件變成AMD模塊,從而將Hls未被全局暴露,進而導致知識付費目前只支持MP4格式播放。
讓知識付費支持M3U8格式,就需要將Hls全局暴露。目前有兩種方法,一種是在引入RequireJS之前使用script標簽引入hls.js文件,這樣就可以避免在引入hls.js文件之前全局環境已經存在define.amd,從而暴露Hls全局變量。另一種是使用RequireJS的require()引入hls.js,然后將Hls掛載到全局對象。1. script標簽引入
如上圖所示,必須寫在block name=”head_top”模塊中,否則無效。因為這個block在requirejs所在block之前。這里的block屬于thinkphp內容。
如上圖所示,這是aliplayer.js中對于Hls的使用,故而Hls必須掛載到全局對象,否則不能獲取到Hls對象。
2. require()引入
如上圖,在require.config的paths中配置好aliplayer、aliplayer-hls和aliplayer-plugin。其中aliplayer-plugin是作為中間模塊使用。
如上圖所示,這是aliplayer-plugin模塊,在這個模塊中將Hls掛載到全局對象。這樣整個流程就可以正常運行。
其實兩種方法的最終目的都是將Hls暴露出來,這樣后續功能才可以正常運行,不管哪一種方法,主要看整個項目規范和功能實現的難易程度。具體運行中會怎么樣,還需要不斷地測試和讀懂aliplayer在一些關鍵點的處理方式。
您如果還想了解更多知識付費的功能技術規則等問題,可以關注CRMEB官網-行業新聞。有更多實用的技術知識為您分享!
