首頁 web前端 H5教程 H5開發影片遇到的問題及解決方案

H5開發影片遇到的問題及解決方案

Feb 28, 2018 pm 02:18 PM
html5 解決方案 問題

最近做了一些嵌入影片的活動,累積了點影片的經驗,下面記錄別人和自己踩過的坑以及相應的解決方案。
1、碰到問題和解決方案
1.1、ios 網頁中播放影片預設全螢幕(點擊影片會彈出播放器進行全螢幕播放)。
解決不全螢幕播放可以加入下列屬性webkit-playsinline='true' 和 playsinline='true' 如果設定上面屬性還沒有效果,那麼可以再配合下面這個外掛來試試。 iphone-inline-video
備註:ios下在微博中開啟網頁播放影片會彈出播放器播放,設定playsinline屬性無效,還必須使用上面那個插件,親測有效。
1.2、andriod中video播放完後顯示推薦影片
行動裝置瀏覽器中的video元素是比較特別的,早期無論是在iOS或Android的瀏覽器中,它都位於頁面的最頂層,無法被遮蓋。後來這個問題在iOS下得到了解決,但是Android的瀏覽器則是問題依舊。 X5是騰訊基於Webkit開發的渲染引擎,它提供了一種名為「同層播放器」的特殊video元素以解決遮蓋問題。透過設定

x5-video-player-type="h5" 可以开启同层播放器,来避免播放后显示推荐视频的问题。
x5-video-player-fullscreen="true" //视频全屏播放
x5-video-orientation="portrait"//视频竖屏模式播放
登入後複製

1.3、視頻的適配
目前設計師一般是按照iphone5或iphone7的標準去設計視頻,一般可以透過寬高100%來播放視頻,如果發現影片還是不行那麼就需要根據實際情況設定object-fit屬性來解決了。 詳見半深入理解CSS3 object-position/object-fit屬性
備註:在webkit核心瀏覽器下,預設為object-fit:contain。
1.4、js控制視頻的播放
在ios中視頻和音頻一般都不會主動播放,除非用戶主動去點擊,所以需要通過js來監聽界面的交互來控制視頻的播放。
影片的播放和暫停主要是呼叫play和pause方法。 而影片播放過程中如果需要一些使用者的互動主要是透過timeupdate方法來監聽目前的播放時間,看一段程式碼:

var isStop = false;
    videoElem.on('timeupdate', function () {
        var curTime = parseInt(videoElem[0].currentTime);
        if (curTime == 152) {//该时间点展示交互蒙层
            $('.js_first_stop').removeClass('hide');
        } else if (curTime > 152 && curTime == 153) {
            if (!isStop) {//解决ios暂停后再次点击播放不了问题,因为该处触发了多次,但是andriod没有该问题。
                isStop = true;
                videoElem[0].pause();
            }
        } else if (curTime == 248) {
            $('.js_second_stop').removeClass('hide');
        }
    });
登入後複製

在ios中監聽timeupdate事件並暫停的影片的時候需要引入一個全域的isStop變量,不然下次點擊繼續播放的時候沒反應(timeupdate的時候觸發了多次暫停),但是andriod是沒有這個問題的。 判斷影片結束可以監聽影片的ended事件

videoElem.on('ended',function(){});
登入後複製

或監聽影片的timeupdate事件,然後判斷ended屬性,若為true則表示結束,false表示未結束。

videoElem.on('timeupdate',function(){
   if(videoElem[0].ended){
    //播放结束
   }
}
登入後複製

另外在andriod端開啟了同層播放器,微信端也提供了2個監聽進入同層播放器和退出同層播放器的事件。 進入同層播放器事件(開始播放影片)。

videoElem.on("x5videoenterfullscreen", function(){}
登入後複製

點選左上角返回鍵退出同層播放器。

videoElem.on('x5videoexitfullscreen',function(){}
登入後複製

最後要注意的是在andriod端播放影片後是不會主動退出同層播放器的。後續如果有展示的介面,也會在播放器中展示,感覺很怪。這裡可以透過連結跳轉來解決。
1.5、canvas播放視頻
canvas可以播放視頻,但是在某些andriod機上會看到有很嚴重的鋸齒,並且有些andriod瀏覽器播放的時候只有聲音而沒有圖像。
1.6、視訊編碼
mp4格式的影片要h.264編碼方式,不然某些ios只有聲音而沒有影像。
最後,一個完整的video配置的如下,僅供參考

<video class="js_video" style="object-fit: cover; width: 100%; height: 100%;" preload="load" 
playsinline="true" webkit-playsinline="true" x5-video-player-type="h5" x5-video-player-fullscreen="true"
 x5-video-orientation="portrait"src="https://video.mdcdn.cn/friend2018.mp4"></video>
登入後複製

相關推薦:

H5同層Video播放器存取實例分享

H5混合開發app如何升級

HTML5音訊與視訊問題及解決方法

以上是H5開發影片遇到的問題及解決方案的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1665
14
CakePHP 教程
1424
52
Laravel 教程
1322
25
PHP教程
1270
29
C# 教程
1250
24
HTML 中的表格邊框 HTML 中的表格邊框 Sep 04, 2024 pm 04:49 PM

HTML 表格邊框指南。在這裡,我們以 HTML 中的表格邊框為例,討論定義表格邊框的多種方法。

HTML 中的巢狀表 HTML 中的巢狀表 Sep 04, 2024 pm 04:49 PM

這是 HTML 中巢狀表的指南。這裡我們討論如何在表中建立表格以及對應的範例。

HTML 左邊距 HTML 左邊距 Sep 04, 2024 pm 04:48 PM

HTML 左邊距指南。在這裡,我們討論 HTML margin-left 的簡要概述及其範例及其程式碼實作。

HTML 表格佈局 HTML 表格佈局 Sep 04, 2024 pm 04:54 PM

HTML 表格佈局指南。在這裡,我們詳細討論 HTML 表格佈局的值以及範例和輸出。

HTML 輸入佔位符 HTML 輸入佔位符 Sep 04, 2024 pm 04:54 PM

HTML 輸入佔位符指南。在這裡,我們討論 HTML 輸入佔位符的範例以及程式碼和輸出。

HTML 有序列表 HTML 有序列表 Sep 04, 2024 pm 04:43 PM

HTML 有序列表指南。在這裡我們也分別討論了 HTML 有序列表和類型的介紹以及它們的範例

HTML onclick 按鈕 HTML onclick 按鈕 Sep 04, 2024 pm 04:49 PM

HTML onclick 按鈕指南。這裡我們分別討論它們的介紹、工作原理、範例以及各個事件中的onclick事件。

在 HTML 中移動文字 在 HTML 中移動文字 Sep 04, 2024 pm 04:45 PM

HTML 中的文字移動指南。在這裡我們討論一下marquee標籤如何使用語法和實作範例。

See all articles