Chrome Android 正在缓存清单中列出的我的视频,但无法离线播放

Chrome on Android is caching my video listed in manifest, but can't play it offline

我创建了一个离线 Web 应用程序,它在远程 chrome 调试控制台中显示正确缓存所有文件,并且显示它正确地支持离线。清单中列出的视频显示已下载到缓存中,但当我打开飞行模式并尝试播放时,它显示一个空视频。

如何让视频离线播放?

缓存清单

CACHE MANIFEST

CACHE:
main.js
video.mp4

HTML link 显化

<html manifest="cache.manifest">

有办法吗?

出于某种原因,唯一可以播放缓存视频的移动浏览器是 Android 上的 Firefox。 但是,有一个解决方案(对于Safari iOS8+、Chrome、Firefox - 我还没有测试过IE ) - 即使离线,他们也会在 objectURL 中播放视频 blob!

你做的是这样的:

  1. 创建索引数据库
  2. 在数据库中查找存储的视频request = transaction.objectStore( "myobjectstorename" ).get( savedId )
  3. 勾选return,如果有则转第5步,否则转第4步if ( !event.target.result ) downloadVideo()
  4. 通过 运行 XMLHttpRequest GET 请求下载视频并设置响应类型 videoRequest.responseType = "blob";
  5. 下载完成后,从数据库中检索(上面的第2步)并将其放入文档中:

作为对象放入页面的代码 url:

var URL = window.URL || window.webkitURL;

//Make into a data URL
var videoURL = URL.createObjectURL( videoFile) ;

//Set video src to ObjectURL
document.getElementById( id ).setAttribute( "src", videoURL );

从这里修改代码:

http://www.misfitgeek.com/html5-off-line-storing-and-retrieving-videos-with-indexeddb/