我有一些简单的视频播放应用程序,它们都是由 PhoneGap 和 Chrome Apps CLI(都使用 Cordova)设置的,它们包含一堆简短的教育视频,并且需要作为 Android/iOS 上的网站和应用程序供离线使用。
到目前为止,我发现 Chrome Apps bundle 文件的总大小不能超过 10mb,PhoneGap Build 不能超过 40mb - 因此两者都需要在本地下载和存储文件以备后用。 视频将需要从 WebView 浏览器中打开和播放 - 热点触发 JS 更改 HTML5 视频源。 (AppCache 和其他 HTML5 存储对于移动设备来说是不可能的,它们似乎永远无法达到三位数的存储空间)
有没有人幸运地使用了某个可以在本地存储文件以实现此规范的 Cordova/PhoneGap/Chrome App API?
感谢任何建议/帮助/指向正确方向!
最佳答案
您可以在 Cordova 应用程序中执行此操作(很快就会在 Chrome Cordova 应用程序中执行)。您需要最新版本的文件 (1.0.1) 和文件传输 (0.4.2) 插件。
有了这些,您可以使用 FileTransfer.download()
下载视频,您可以使用文件访问文件并创建一个 <video>
标签播放视频。
您需要使用 .toNativeURL()
播放文件条目之前的方法。文件插件的最新版本使用自定义 URL 方案的文件,不幸的是与 HTML 不兼容 <video>
标签。
这是我用来测试这些方法交互的测试代码:
var filename = "small.mp4";
var videoURL = "http://techslides.com/demos/sample-videos/small.mp4";
requestFileSystem(PERSISTENT, 0, function(fileSystem) {
var ft = new FileTransfer();
ft.download(videoURL, fileSystem.root.toURL() + "/" + filename, function(entry) {
var videoElement = document.createElement('video');
videoElement.controls = 'controls';
videoElement.src = entry.toNativeURL();
document.videoElementById("output").appendChild(imgElement);
});
});
更新
使用最新版本的文件插件 (1.1.0),您不再需要使用 .toNativeURL()
获取可用作 src
的 URL视频的属性。标准.toURL()
方法将返回这样一个 URL。
关于android - 在 PhoneGap/Chrome 应用程序中存储视频以供离线使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22047752/