Android html5 控制video currentTime不許確,精確,解決辦法。

 

早在flash時代 咱們控制視頻播放指定時間位置的畫面也會有不許確的狀況,html

具體狀況表現爲:video.seek(time)   而實際畫面會跳到此時間附近(1-2秒)的畫面html5

 

而HTML5 咱們經過android

var vd=document.getElementById("DOM ID名");ide

vd.currentTime=10 ;spa

能夠指定視頻當即播放對應時間位置的畫面 (電腦,IOS端都可)code

 

可是andorid端真機上卻發現幾個問題視頻

Q:設置 vd.currentTime=時間,可是卻沒有效果;htm

A:android端設置時間後,必定要video.play(); 纔會刷新畫面。blog

 

Q:vd.currentTime=時間;並video.play(); 可是視頻竟然不是從我配置的時間位置開始播放的,(具體表現爲,畫面會跳到此時間附近(1-2秒、甚至更多)的畫面)rem

A:這裏要引入一個詞語叫【視頻關鍵幀距離android端會跳轉到離你設置currentTime 最近的一個關鍵幀位置播放。

  注意:這個【關鍵幀距離】中的關鍵幀並非咱們常說的AE等軟件裏插入的關鍵幀;

  

   

你還能夠訪問這裏查看更多關於視頻中的名詞解釋:

https://helpx.adobe.com/cn/media-encoder/using/video-audio-encoding-compression.html

 

那麼,隨之而來的解決思路就是改變視頻的關鍵幀距離。例如:當前視頻  fps=25, 關鍵幀距離是75幀(簡單計算就是3秒一個關鍵幀),  那麼我設置 vd.currentTime=7,    7*25 =175 視頻將會從  最近的一個關鍵幀(150幀)播放。 也就會出現咱們控制播放時間不許確的現象。當咱們改變關鍵幀距離爲25幀 ,那麼就能夠準確的控制 vd.currentTime=7 的跳轉播放畫面了。若是你還有更高的精度要求,你能夠繼續縮小關鍵幀距離。可是請注意:在其餘參數相同的狀況下這會增大視頻的體積。

 

最後,怎麼來設置視頻的關鍵幀距離呢?恩,你猜到了,這家公司又出鏡了:Adobe Media Encoder 與 After Effects 和 Premiere Pro 這3款軟件均可以設置,我這裏使用了Media Encoder。 下面爲截圖

 

導入視頻,點擊紅框打開配置

 

設置界面。有心情的能夠慢慢研究他的功能

 

右側找到對應的配置,設置好  輸出便可

 

到此,android html5 video 設置currentTime 不許確的問題獲得解決。

 

若是此文對你有幫助,有力的推薦一下,有財的右側掃描QR碼 支持!   :))  雙下巴微笑

相關文章
相關標籤/搜索