12

我有一个示例,它在 chrome 上缓存得很好,并在离线时显示视频。

当我使用 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 浏览器?

4

3 回答 3

2

我曾尝试使用其默认浏览器以及 Chrome 27.0 在 Android 4.1.2 上缓存视频(mp4 格式)和音频(mp3 格式)文件,但正如您在帖子中提到的,尽管它缓存了这些元素,但它没有播放离线模式下的视频和音频。

于 2013-05-30T17:22:53.167 回答
0

问题是HTML5 离线规范中没有指定 AppCache 的最大大小。互联网上的各种 帖子 显示了离线存储的不同配额限制。

在 StackOverflow 上,关于缓存最大值的问题也存在很多问题。文件大小:

我认为可以肯定地说,可用的最大配额在很大程度上取决于浏览器和平台——有时甚至取决于可用的可用空间。

有一个可用的工具http://demo.agektmr.com/storage/(在本文中找到)允许检查您设备上可用的最大配额。也许当您检查它时,您会发现要缓存的视频的文件大小对于您的设备来说太大了。

TL;DR 提到的消息来源使我得到以下答案:(有时)可以将视频存储到有限的文件大小,具体取决于浏览器、平台和运行环境。但是不能保证它会被正确缓存(至少如果它不够小的话)。

于 2014-09-24T10:18:11.483 回答
0

我提供了一个简单的示例( src ),介绍了在使用 Application Cache 或 Service Worker 时如何缓存 HTML5 视频以供离线使用。

存储视频以供离线使用

  1. 将视频作为数组缓冲区获取
  2. 将数组缓冲区存储在 IndexedDb 中
  3. 将数组缓冲区转换为 blob
  4. 将 blob 分配给视频的源
  5. 离线时,从 IndexedDB 抓取视频的来源

如果您愿意,您也可以在线时从 IndexedDB 获取视频源。

于 2017-02-21T22:20:42.630 回答