Almacenamiento de vídeo para uso sin conexión en aplicaciones PhoneGap / Chrome

Tengo simples aplicaciones de reproducción de video, ambas configuradas por PhoneGap y Chrome Apps CLI (Both use Cordova), contienen un montón de videos educativos cortos y se necesitan como sitio web y aplicación en Android / iOS para uso sin conexión.

Hasta ahora, he encontrado que el tamaño total del archivo incluido de Chrome Apps no puede superar los 10mb y que PhoneGap Build no puede superar los 40mb. Por lo tanto, ambos necesitarán descargar y almacenar archivos localmente para su uso posterior. Los videos tendrán que abrirse y reproducirse desde el navegador WebView: los hotspots activan JS que cambian el src de video HTML5. (AppCache y el otro almacenaje del HTML5 están hacia fuera la pregunta para los dispositivos móviles, nunca parecen poder alcanzar el espacio de almacenaje triple del dígito)

¿Alguien ha tenido suerte con un determinado Cordova / PhoneGap / Chrome API de la aplicación que puede almacenar archivos localmente para lograr esta especificación?

Cualquier consejo / ayuda / señalando en la dirección correcta apreciado!

2 Solutions collect form web for “Almacenamiento de vídeo para uso sin conexión en aplicaciones PhoneGap / Chrome”

Usted puede hacer esto en Cordova aplicaciones (y muy pronto en aplicaciones Chrome Cordova). Necesitará las versiones más recientes de los complementos File (1.0.1) y FileTransfer (0.4.2).

Con éstos, puede usar FileTransfer.download() para descargar el video, y puede usar File para acceder al archivo y crear una etiqueta <video> para reproducir el video.

Deberá utilizar el método .toNativeURL() en las entradas del archivo antes de reproducirlas. Las versiones recientes del complemento de archivo utilizan un esquema de URL personalizado para los archivos, que desafortunadamente no es compatible con la etiqueta HTML <video> .

Este es el código de prueba que uso para probar la interacción de estos métodos:

 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); }); }); 

Actualizar

Con la última versión del complemento de archivo (1.1.0), ya no necesitas usar .toNativeURL() para obtener una URL que puedes usar como un atributo src para un video. El .toURL() estándar .toURL() devolverá tal URL.

Aquí está el código para descargar el archivo usando phonegap filetransfer

  function downloadFile(){ window.requestFileSystem( LocalFileSystem.PERSISTENT, 0, function onFileSystemSuccess(fileSystem) { fileSystem.root.getFile( "test.html", {create: true, exclusive: false}, function gotFileEntry(fileEntry){ var Path = fileEntry.fullPath.replace("test.html",""); var fileTransfer = new FileTransfer(); fileEntry.remove(); fileTransfer.download( yourserverurl, Path + "yourfilename+extension", function(theFile) { window.localStorage.setItem("FilePath", theFile.toURL()); console.log(theFile.toURL()); }, function(error) { console.log("upload error code: " + error.code); } ); }, fail); }, fail); } function fail(error) { console.log(error.target.error.code); } 

Puede almacenar el fileURL en localstorage para más usuage

  • Acceso a los datos principales de iOS desde Android
  • ¿Cómo generar enlace waze meetup con fallback web?
  • Almacenamiento en caché de datos para aplicaciones móviles de iOS / Android para trabajar con Pagination
  • En el teléfono móvil, detecte cuándo el usuario se desplaza "pasado" en la parte superior de la pantalla
  • ¿Hay un equivalente en iOS para el Android ProgressDialog
  • Android vs iOS que elegir
  • Phonegap, textarea no aceptará entrada
  • Implementar la entrada de pago Stripe en la aplicación Cordova / Phonegap
  • Descargar IPA / APK de Crashlytics
  • ¿Puedo hacer que Firebase utilice un proceso de inicio de sesión de nombre de usuario?
  • Android ignora la escala máxima al usar meta-tag de viewport de ancho fijo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.