Chrome在Android上缓存我的视频清单中列出,但不能离线播放

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

本文关键字:单中列 但不能 播放 离线 的视频 Android 缓存 我的 Chrome      更新时间:2023-09-26

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

如何让视频离线播放?

缓存清单

CACHE MANIFEST
CACHE:
main.js
video.mp4

链接到manifest

<html manifest="cache.manifest">

有办法做到这一点吗?

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

你要做的是:

  1. 创建indexedDB
  2. 查找db request = transaction.objectStore( "myobjectstorename" ).get( savedId )
  3. 中存储的视频
  4. 检查返回,如果有,移动到步骤5,否则步骤4 if ( !event.target.result ) downloadVideo()
  5. 运行XMLHttpRequest GET请求下载视频,设置响应类型videoRequest.responseType = "blob";
  6. 下载后,从数据库中检索(上面的步骤2)并将其放入文档中:

CODE To Put in page as object 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/

相关文章: