今天來介紹 clappr 播放器
clappr 是一款開源播放器,並可透過 Plugin 支援RTMP、DASH 與 FLV ,這個播放器的特色是:
CDN
<script src="https://cdn.jsdelivr.net/npm/clappr@latest/dist/clappr.min.js" type="text/javascript" ></script>
HTML
<div id="player"></div>
JS
const player = new Clappr.Player({
source: "http://www.html5videoplayer.net/videos/toystory.mp4",
parentId: "#player"
});
說明:
建立Clappr播放器的方式很簡單,new 一個新 Clappr.Player物件 ,在 new 的時候傳入一個物件,可以替該物件帶入其他 config 屬性參數,這裡以 source 與 parentId 為例。
parentId屬性值為HTML欲綁定 <Tag> 的 id,如果不傳入parentId屬性,
也可在new Clappr.Player()下面用
Clappr物件.attachTo( 欲綁定DOM節點 );
的寫法。
config 有一些參數可選:
| 屬性 | 型態 | 描述 |
|---|---|---|
| source | (字串)影片路徑 | 影片路徑 |
| poster | (字串)圖片路徑 | 影片播放前的靜態圖片路徑 |
| width | 數值 | 播放器寬度 |
| height | 數值 | 播放器高度 |
| autoPlay | true、false | 是否自動播放 ( 預設 false ) |
| preload | true、false | 是否在背景預先加載影片 |
| mute | true、false | 是否靜音 |
| persistConfig | true、false | 是否以 localStorage 記錄當前音量大小(下次載入其他影片時聲音大小會保留) |
| events | 物件(見下面說明) | 事件監聽 |
| 其他可帶入屬性文件見此 | ||
| 至此影片便建立完成。 |

clappr 的事件 API 也很簡單,可以在new Clappr.Player()建立物件時,在裏頭帶入 events 屬性,其值為一個物件,該物件中能帶入監聽事件觸發時執行的 callback 函式。
const player = new Clappr.Player({
events: {
onReady: () => { //...做某件事 },
onPause: () => { //...做某件事 }
}
})
這裡列出幾個常用的 Event 事件
| 事件名 | 描述 |
|---|---|
| onReady | 播放器初始化建立完觸發 |
| onPlay | 播放時觸發 |
| onPause | 暫停時觸發 |
| onSeek | 滑動時間條時觸發 |
| onEnded | 播放結束時觸發 |
| onError | 播放出錯(載入或程式錯誤)觸發 |
| 其他可帶入事件與callback文件見此 |
clappr 也提供了不少方法,這裡列出幾個常用的:
| 方法 | 描述 |
|---|---|
| .play( ) | 播放 |
| .pause( ) | 暫停 |
| .stop( ) | 停止 |
| .mute( ) | 靜音 |
| .isPlaying( ) | 檢查是否播放(回傳true或false) |
| .load( src ) | src為影片連結,播放器會將影片連結切換成src |
參考
clappr Github
clappr Events API
clappr Plugins