2015-01-07 150 views
0

我在尋找一個解決方案,其中:在手機上預加載HTML5視頻

4個MP4 /視頻文件,每個5MB大小。

這些視頻會像單個MP4 /視頻文件(MP4文件之間沒有間隙)一樣被一個一個播放,跨瀏覽器和跨設備。

你知道什麼是最好的方法嗎?我不是在尋找替代視頻源文件的解決方案。 (因爲會一直存在差距)至於我到目前爲止所擁有的2個獨立的視頻元素,其中一個視頻將在另一個視頻中預先加載,而另一個正在播放,但不支持大多數移動設備預加載屬性。

任何答案,大爲讚賞, 亞當

+3

預壓移動大文件通常是一個壞主意,因爲移動用戶不喜歡有嚼起來沒有很好的理由他們的數據計劃。也就是說,你最好的解決方案可能是[將視頻合併到單個文件服務器端](http://superuser.com/questions/709656/ffmpeg-joining-2-videos-to-play-one-after -另一個)。 – Blazemonger

+0

我敢肯定,大多數瀏覽器都會禁止你這樣做,因爲@ Blazemonger的理由。 – DLeh

+0

謝謝@Blazemonger,這就是我的想法,你是否知道任何解決方案都可以在不干擾服務器端的情況下工作?是否有任何JS解決方案可以將視頻文件緩存到一個mp4中並進行流式處理?可能HTML請求標題將不得不稍微修改才能使其工作 –

回答

1

這不是一個完美的解決方案,但它會爲你的視頻標籤的多個實例裝載的想法工作。

在HTML中放5個視頻播放器。

在CSS中隱藏其中4個(display:none);

在JS
使視頻的全局變量數組對象

var v=new Array; 
v[1] = document.getElementById('player1'); 
... 
v[5] = document.getElementById('player5'); 

在玩家1-4添加事件偵聽器的「結束」事件,調用一個函數。

next function(n){ 
    v[n+].style.display='block'; 
    v[n].style.display='none'; 
    v[n+1].play() 
} 

}

+0

您可能需要爲玩家添加v [x] .load()。你想確保只有第一個玩家正在加載。然後在onload事件中加載其他玩家。無論運營商允許,它們都可以同時加載桌面電話。 – Misunderstood