我创建了一个离线 Web 应用程序,它在远程 chrome 调试控制台中显示为正确缓存所有文件,并显示它可以正确离线。清单中列出的视频显示为下载到缓存中,但是当我打开飞行模式并尝试播放时,它显示一个空视频。
如何让视频离线播放?
缓存清单
CACHE MANIFEST
CACHE:
main.js
video.mp4
清单的 HTML 链接
<html manifest="cache.manifest">
有没有办法做到这一点?
我创建了一个离线 Web 应用程序,它在远程 chrome 调试控制台中显示为正确缓存所有文件,并显示它可以正确离线。清单中列出的视频显示为下载到缓存中,但是当我打开飞行模式并尝试播放时,它显示一个空视频。
如何让视频离线播放?
缓存清单
CACHE MANIFEST
CACHE:
main.js
video.mp4
清单的 HTML 链接
<html manifest="cache.manifest">
有没有办法做到这一点?
出于某种原因,唯一可以播放缓存视频的移动浏览器是 Android 上的 Firefox。但是,有一个解决方案(对于Safari iOS8+、Chrome、Firefox - 我还没有测试过 IE) -他们甚至可以离线播放 objectURL 中的视频 blob!
你要做的是:
request = transaction.objectStore( "myobjectstorename" ).get( savedId )
if ( !event.target.result ) downloadVideo()
XMLHttpRequest
GET
请求下载视频并设置响应类型videoRequest.responseType = "blob";
将页面作为对象 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/