H5打造屬於自己的影片播放器(HTML篇)

newsning發表於2016-08-15

前言

眾所周知,16年無疑是直播行業的春天,同時也是H5的一次高潮。
so,到現在用H5技術在移動端做網頁直播也是見怪不怪了,但是!!!
今天我們的主角是webApp下播放影片
參考文獻:
1)HTML5+CSS3+JQuery打造自定義影片播放器
2)mui Html5 Video 實現方案
3)移動端HTML5<video>影片播放最佳化實踐

搬好凳子看HTML

首先我們在HB下建立一個新的app專案,名稱為 欠債

clipboard.png

新建一個video.html

clipboard.png

webkit-playsinline : 在ios中,加入此屬性,可以關閉自動全屏播放
object-fit:fill : 影片充滿video容器的大小
詳細理由請看參考文獻2or3

在此我們向專案裡放置一個mp4格式的影片,影片內容不限,可以是小動畫,也可以是
clipboard.png

ps:要在meta中加上,否則影片會擴充變形哦

<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />

OK,現在佈局已經完成,一個影片已經在頁面中了

旁白:尼瑪,點了沒反應,那這怎麼播放?

樓主:你們這群傢伙看別的小影片等個1小時都行。。。

旁白:一個簡單的播放器,至少要有 暫停/播放,進度條,影片時長,全屏等控制元件吧

樓主:來來來,不要急,先來個播放按鈕寫在video標籤後面

        <div class="bad-video">
            <video class="" webkit-playsinline style="object-fit:fill;">
                <source src='xx.mp4' type="video/mp4"></source>
                <p>裝置不支援</p>
            <video>
            <img src="img/play.png"/>
        </div>

寫好樣式、

        .bad-video {
            position: relative;
            overflow: hidden;
            background-color: #CCCCCC;
        }
        
        .bad-video .vplay{
            position: absolute;
            width: 15%;
            z-index: 99;
            top: 50%;
            left: 50%;
            -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
        }

樓主:噹噹噹

clipboard.png

再在後面加一個控制條

            <img src="img/play.png" class="vplay" />
            <div class="controls">
                <div>
                    <div class="progressBar">
                        <div class="timeBar"></div>
                    </div>
                </div>
                <div><span class="current">00:00</span>/<span class="duration">00:00</span></div>
                <div><span class="fill">全屏</span></div>
            </div>
.bad-video .controls {
    width: 100%;
    height: 2rem;
    line-height: 2rem;
    font-size: 0.8rem;
    color: white;
    display: block;
    position: absolute;
    bottom: 0;
    background-color: rgba(0, 0, 0, .55);
    display: -webkit-flex;
    display: flex;
}

.bad-video .controls>* {
    flex: 1;
}

.bad-video .controls>*:nth-child(1) {
    flex: 6;
}

.bad-video .controls>*:nth-child(2) {
    flex: 2;
    text-align: center;
}

.bad-video .controls .progressBar {
    margin: .75rem 5%;
    position: relative;
    width: 90%;
    height: .5rem;
    background-color: rgba(200, 200, 200, .55);
    border-radius: 10px;
}

.bad-video .controls .timeBar {
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 100%;
    background-color: rgba(99, 110, 225, .85);
    border-radius: 10px;
}

總算有個看起來像樣的了
clipboard.png

旁白:樓主,可是還是不能播放啊
樓主:叫你別急,要不你先去擼一把,我寫好了文字@你
旁白:好啊,早說嘛,我先走了,記得@我
樓主:你走,省的我精神分裂碼兩個人的字

好,現在Html元素已經基本上弄好啦,看起來不是那麼low了

H5打造屬於自己的影片播放器(邏輯篇)
H5打造屬於自己的影片播放器(JS篇1)
H5打造屬於自己的影片播放器(JS篇2)

相關文章