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!
你做的是这样的:
- 创建索引数据库
- 在数据库中查找存储的视频
request = transaction.objectStore( "myobjectstorename" ).get( savedId )
- 勾选return,如果有则转第5步,否则转第4步
if ( !event.target.result ) downloadVideo()
- 通过 运行
XMLHttpRequest
GET
请求下载视频并设置响应类型 videoRequest.responseType = "blob";
- 下载完成后,从数据库中检索(上面的第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/
我创建了一个离线 Web 应用程序,它在远程 chrome 调试控制台中显示正确缓存所有文件,并且显示它正确地支持离线。清单中列出的视频显示已下载到缓存中,但当我打开飞行模式并尝试播放时,它显示一个空视频。
如何让视频离线播放?
缓存清单
CACHE MANIFEST
CACHE:
main.js
video.mp4
HTML link 显化
<html manifest="cache.manifest">
有办法吗?
出于某种原因,唯一可以播放缓存视频的移动浏览器是 Android 上的 Firefox。 但是,有一个解决方案(对于Safari iOS8+、Chrome、Firefox - 我还没有测试过IE ) - 即使离线,他们也会在 objectURL 中播放视频 blob!
你做的是这样的:
- 创建索引数据库
- 在数据库中查找存储的视频
request = transaction.objectStore( "myobjectstorename" ).get( savedId )
- 勾选return,如果有则转第5步,否则转第4步
if ( !event.target.result ) downloadVideo()
- 通过 运行
XMLHttpRequest
GET
请求下载视频并设置响应类型videoRequest.responseType = "blob";
- 下载完成后,从数据库中检索(上面的第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/