成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

神經(jīng)病??!——微信同層播放器接(踩)入(坑)總結(jié)

wzyplus / 2588人閱讀

摘要:估計(jì)踩過微信視頻這個(gè)坑的,內(nèi)心都想說上一句神經(jīng)病啊而微信也終于出了個(gè)同層播放器接入規(guī)范,算是正常點(diǎn)了好了閑話不說,下邊進(jìn)入正題標(biāo)簽里的內(nèi)聯(lián)播放相關(guān)屬性微信在標(biāo)簽上新增了一些的私有屬性,分別是啟用同層播放。

估計(jì)踩過微信視頻這個(gè)坑的,內(nèi)心都想說上一句:

“神經(jīng)病??!”

而微信也終于出了個(gè)《H5同層播放器接入規(guī)范》,算是正常點(diǎn)了……好了閑話不說,下邊進(jìn)入正題:

1. 標(biāo)簽里的內(nèi)聯(lián)播放相關(guān)屬性

微信在video標(biāo)簽上新增了一些x5的私有屬性,分別是:

x5-video-player-type
啟用同層播放。取值固定為"h5"。

x5-video-player-fullscreen
是否全屏。取值為"true""false"。

x5-video-orientation
視頻方向。取值分別為"landscape"、"portrait"或者"landscape|portrait",分別對(duì)應(yīng)橫屏、豎屏及自動(dòng)旋轉(zhuǎn)(這個(gè)應(yīng)該用的少)。

不過有一點(diǎn)需要注意的是,這些都是x5的私有屬性,僅適用于Android平臺(tái)。而跟iOS平臺(tái)相關(guān)的,則是這幾個(gè)屬性:

airplay

x-webkit-airplay

playsinline

webkit-playsinline

其中最后兩個(gè)是iOS平臺(tái)下的內(nèi)聯(lián)播放屬性,都是布爾屬性,不需要賦值(存在即是true);前兩個(gè)是iOS平臺(tái)下airplay的相關(guān)屬性(說實(shí)話我現(xiàn)在也沒搞明白為什么網(wǎng)頁需要airplay屬性),取值為"allow""deny",通常保險(xiǎn)起見用"allow"就可以。

2. CSS的屬性選擇及取值

微信在同層接入規(guī)范中提到了object-position這個(gè)屬性,用于設(shè)置視頻出現(xiàn)的位置。實(shí)際在嘗試的過程中,搭配object-fit屬性同時(shí)使用的效果會(huì)比較好。但這兩個(gè)屬性并不是x5私有屬性,而是原生的,所以它們同時(shí)適用于Android和iOS兩個(gè)平臺(tái)。

object-positionobject-fit這兩個(gè)元素主要的作用是為“可替換元素”設(shè)置位置和大小。這里的“可替換元素”,指的是內(nèi)容不受CSS顯式控制的元素,比如比較典型的就是、和表單元素等。

說回視頻播放。微信官方的同層接入規(guī)范中推薦的做法,是用js動(dòng)態(tài)計(jì)算需要的像素值,然后給object-position屬性賦值。而我自己嘗試了一圈下來,發(fā)現(xiàn)object-position這個(gè)屬性本身支持百分比取值,通常視頻默認(rèn)的值是"50% 50%",也就是居中;全屏視頻一般情況下需要貼底放,所以要把取值改成"0 100%"。

另一個(gè)屬性object-fit,有點(diǎn)類似background-size屬性,用來設(shè)置視頻在容器內(nèi)的填充方式,平時(shí)用只需要取值"contain"(保持寬高比填滿容器)就可以了。不過這里需要留意的是,全屏下,由于視頻一般都不會(huì)正好填滿屏幕(寬高比差異以及輸出分辨率沒算頂部標(biāo)題欄),會(huì)在頂部留下一條空隙。這條空隙通常是默認(rèn)黑色的,如果需要更改顏色,首先要加上個(gè)"display:block;"(因?yàn)関ideo默認(rèn)是inline的),然后直接改background-color就OK~

3. 視頻封面

標(biāo)簽里有一個(gè)與視頻封面相關(guān)的屬性poster,但是在使用中發(fā)現(xiàn)性能存在一些問題,在Android端打開視頻時(shí)(加載),會(huì)有跳動(dòng)的感覺,但是如果去掉,在視頻加載時(shí)(preload取值"auto",且未用預(yù)加載)則會(huì)顯示空白頁面。目前換用了背景圖片的方式,但由于視頻全屏播放時(shí)頂部會(huì)有空隙,所以額外加了個(gè)background-position: bottom;以及background-size: contain;(取值和視頻保持一致),這樣設(shè)置好的背景在播放視頻時(shí)就不會(huì)漏邊了。

4. 設(shè)置視頻視口大小

同層接入規(guī)范里推薦在resize事件回調(diào)里設(shè)置視頻視口大小,我習(xí)慣直接設(shè)置標(biāo)簽的widthheight,所以在resize回調(diào)里加入:

$("video")
        .attr({
            "width": window.innerWidth + "px",
            "height": window.innerHeight + "px"
        });

就可以了。

5. UA特性探測(cè)

同層接入規(guī)范里給的,判斷是否是同層播放器方法:

在微信等TBS里通過UA判斷X5內(nèi)核版本來區(qū)分,當(dāng)版版本號(hào)>036849表示支持
UA示例:
Mozilla/5.0 (Linux? Android 4.4.4? OPPO R7 Build/KTU84P) AppleWebKit/537.36
(KHTML, like Gecko) Version/4.0 Chrome/37.0.0.0 Mobile MQQBrowser/6.8
TBS/036849 Safari/537.36 MicroMessenger/6.3.27.861 NetType/WIFI
Language/zh_CN

在QQ瀏覽器Android版本中,當(dāng)瀏覽器版本>=7.1時(shí)開始支持
UA示例:User-Agent: Mozilla/5.0 (Linux? U? Android 4.4.4? zh-cn? OPPO R7
Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko)Version/4.0
Chrome/37.0.0.0 MQQBrowser/7.1 Mobile Safari/537.36

參考資料:

微信 · H5同層播放器接入規(guī)范

京東 · 視頻H5のVideo標(biāo)簽在微信里的坑和技巧

關(guān)于如何在微信里面讓video不全屏播放

H5微信播放全屏問題

HTML5中的視頻音頻使用詳解

張?chǎng)涡?· 半深入理解CSS3 object-position/object-fit屬性

MDN · object-fit

MDN · object-position

MDN · 媒體相關(guān)事件

MDN · 可替換元素

Apple Developer · HTMLVideo?Element

Apple Developer · HTMLMedia?Element

Apple Developer · plays?Inline

Apple Developer · Opting Into or Out of AirPlay

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/111795.html

相關(guān)文章

  • 經(jīng)病!——微信同層放器()()總結(jié)

    摘要:估計(jì)踩過微信視頻這個(gè)坑的,內(nèi)心都想說上一句神經(jīng)病啊而微信也終于出了個(gè)同層播放器接入規(guī)范,算是正常點(diǎn)了好了閑話不說,下邊進(jìn)入正題標(biāo)簽里的內(nèi)聯(lián)播放相關(guān)屬性微信在標(biāo)簽上新增了一些的私有屬性,分別是啟用同層播放。 估計(jì)踩過微信視頻這個(gè)坑的,內(nèi)心都想說上一句: 神經(jīng)病??! 而微信也終于出了個(gè)《H5同層播放器接入規(guī)范》,算是正常點(diǎn)了……好了閑話不說,下邊進(jìn)入正題: 1. 標(biāo)簽里的內(nèi)聯(lián)播放相關(guān)屬性...

    HtmlCssJs 評(píng)論0 收藏0
  • 經(jīng)病!——微信同層放器()()總結(jié)

    摘要:估計(jì)踩過微信視頻這個(gè)坑的,內(nèi)心都想說上一句神經(jīng)病啊而微信也終于出了個(gè)同層播放器接入規(guī)范,算是正常點(diǎn)了好了閑話不說,下邊進(jìn)入正題標(biāo)簽里的內(nèi)聯(lián)播放相關(guān)屬性微信在標(biāo)簽上新增了一些的私有屬性,分別是啟用同層播放。 估計(jì)踩過微信視頻這個(gè)坑的,內(nèi)心都想說上一句: 神經(jīng)病??! 而微信也終于出了個(gè)《H5同層播放器接入規(guī)范》,算是正常點(diǎn)了……好了閑話不說,下邊進(jìn)入正題: 1. 標(biāo)簽里的內(nèi)聯(lián)播放相關(guān)屬性...

    liuchengxu 評(píng)論0 收藏0
  • h5視頻播放記錄

    隨著抖音、快手這類的視頻類app的火爆,移動(dòng)端h5視頻類應(yīng)用也隨之興起,使用video播放的場(chǎng)景也越來越多,本篇文章主要例舉了移動(dòng)端視頻播放的一些場(chǎng)景和個(gè)人在開發(fā)過程中遇到的一些問題,希望在看過這篇文章后,能對(duì)開發(fā)者在移動(dòng)端使用video播放時(shí)快速開發(fā)減少踩坑 全屏播放 視頻的全屏播放是移動(dòng)端一個(gè)很常見的場(chǎng)景,因此我們需要對(duì)video設(shè)置全屏播放,全屏播放用到的方法是requestFullscre...

    wenshi11019 評(píng)論0 收藏0
  • h5視頻播放記錄

    隨著抖音、快手這類的視頻類app的火爆,移動(dòng)端h5視頻類應(yīng)用也隨之興起,使用video播放的場(chǎng)景也越來越多,本篇文章主要例舉了移動(dòng)端視頻播放的一些場(chǎng)景和個(gè)人在開發(fā)過程中遇到的一些問題,希望在看過這篇文章后,能對(duì)開發(fā)者在移動(dòng)端使用video播放時(shí)快速開發(fā)減少踩坑 全屏播放 視頻的全屏播放是移動(dòng)端一個(gè)很常見的場(chǎng)景,因此我們需要對(duì)video設(shè)置全屏播放,全屏播放用到的方法是requestFullscre...

    heartFollower 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<