2012-02-08 162 views
11

我有一個例子,它在Chrome瀏覽器上緩存得很好,並在離線時顯示視頻。Android可以緩存緩存清單HTML5視頻離線嗎?

當我試用Android 3.2和4.x平板電腦的這個例子時,視頻將只能在線播放,但不能離線播放 - 儘管HTML文件和背景等其他元素都離線播放。

<!DOCTYPE html> 
<html manifest="example.appcache"> 
    <head> 
     <title>Hello Video!</title> 
     <style> 
     body{ background: url('background.jpg');} 
     </style> 
    </head> 
    <body> 
     <video width="855" height="480" controls=""> 
      <source src="railer.mp4"/> 
     </video> 
    </body> 
</html> 

和緩存清單example.appcache樣子:

CACHE MANIFEST 

index.html 
railer.mp4 
background.jpg 

NETWORK: 
* 

有沒有人設法讓離線視頻緩存通過緩存清單工作Android的瀏覽器?

+3

你曾經解決過你的問題嗎? @alarmatwork – Odin 2014-03-10 06:15:01

+0

@ alarmatwork,請查看:http://stackoverflow.com/a/42379075/1911755 – 2017-02-21 22:21:24

回答

2

我試圖在Android 4.1.2上使用默認瀏覽器以及Chrome 27.0緩存視頻(mp4格式)以及音頻(mp3格式)文件,但正如您在帖子中提到的,儘管它緩存了這些元素沒有在離線模式下播放視頻和音頻。

0

問題是在HTML5 offline spec中沒有指定AppCache的最大尺寸。 Variouspostson the internet顯示離線存儲的不同配額限制。

在StackOverflow上還存在很多關於緩存最大值問題的問題。文件大小:

我覺得一切是安全的,說的是,該最大限額可用很大程度上依賴於瀏覽器和平臺 - 有時甚至可用空間。

有一個工具可用http://demo.agektmr.com/storage/(在此article中找到),它允許檢查設備上可用的最大配額。也許當你檢查出來,你會發現你想緩存的視頻的文件大小對於你的設備來說太大了。

TL; DR提到的消息來源讓我回答如下:根據瀏覽器,平臺和運行環境,有時可以將視頻存儲到有限的文件大小。但不能保證它會被正確緩存(至少如果它不夠小)。

+0

在我的情況下,我已確認視頻文件已被瀏覽器存儲(我的視頻文件只有1mb和1mb之間在任何情況下都是3mb),但是當瀏覽器離線時,它們仍然沒有播放。 – rdans 2014-09-24 12:05:44

+0

哦 - 你有瀏覽器有緩存的視頻(即保存到存儲),但它不會加載緩存的文件?那麼,聽起來更像是一個瀏覽器bug,而不是appcache功能的限制。 – GeneSys 2014-09-24 13:19:35

0

關於如何在使用Application Cache或Service Worker時如何緩存HTML5視頻以供脫機使用,我已包含一個裸機examplesrc)。

來存儲視頻以供離線使用

  1. 獲取視頻作爲數組緩衝區
  2. 店的數組緩衝區在IndexedDB的
  3. 轉換的數組緩衝區變成一個blob
  4. 分配的Blob視頻的來源
  5. 脫機時,從IndexedDB抓取視頻的來源

如果您願意,也可以在線時從IndexedDB抓取視頻的源代碼。