2014-11-22 42 views
0

我有以下問題:科爾多瓦的iOS:與下載的HTML的文件和視頻文件加載視頻

  • 我有一個iOS的應用科爾多瓦。
  • 應用程序通過使用以下Cordova插件下載zip文件並將其解壓縮到「cdvfile:// localhost/persistent/content/myfolder」中:org.apache.cordova.file-transfer org.apache.cordova.file和https://github.com/MobileChromeApps/zip.git
  • 在zip裏面有一個帶有「視頻標籤」的「index.html」文件。
  • 我能夠成功加載並執行「index.html」文件,但視頻無法加載。

我知道視頻文件被成功解壓縮,因爲:

  • 我檢查我的iPad裏面的文件。
  • 我將視頻嵌入以下列方式科爾多瓦應用程序(不是下載一個)的指數,它的工作原理:

    var videocontainer = document.getElementsByTagName('video')[0]; 
    var videosource = document.getElementsByTagName('source')[0]; 
    var newmp4 = cordova.file.documentsDirectory + 'content/myfolder/videos/myvideo.mp4'; 
    videosource.setAttribute('src', newmp4); 
    videocontainer.load(); 
    videocontainer.play(); 
    

但是,視頻不加載/內發揮下載的HTML文件。爲了理解我在做什麼,我必須開發一個應用程序,通過從zip中下載其內容來更新應用程序,其內容包括嵌入了視頻的頁面。它適用於PC和Android,但不適用於iOS。

我嘗試了以下幾件事:

  • 加載頁面中的 「_self」。該頁面顯示,但不是視頻。
  • 將頁面加載到iframe中。同樣的結果。
  • 將頁面加載到inAppBrowser(插件)中。同樣的結果。
  • 帶有源src =「videos/myvideo.mp4」的視頻標籤(適用於Web和Android)。同樣的結果。
  • 帶源src =「./ videos/myvideo.mp4」的視頻標籤(適用於Web和Android)。同樣的結果。
  • 視頻標籤源src = cordova.file.documentsDirectory +'content/myfolder/videos/myvideo.mp4'(使用JS,通過在查詢字符串中傳遞路徑,在根index.html中使用相同的路徑)我之前描述過)。同樣的結果。
  • 視頻標籤源src = cordova.file.documentsDirectory +'cdvfile://localhost/persistent/content/myfolder/videos/myvideo.mp4'。同樣的結果。
  • 先前事物的全部組合。相同的結果....

將下載的資源加載到DIV中不是一種選擇,因爲資源(圖像,css,javascripts,音頻,視頻等)在其他iOS設備的文件夾中下載:應用程序的文檔「文件夾(cdvfile:// localhost/persistent /)。

我的事情我幾乎嘗試了所有......爲什麼不在遊戲中播放一個視頻標籤,這些都在應用程序的Documents文件夾中?

:-(

編輯1:科爾多瓦版本= 3.6。3

+0

儘量讓你的問題更精確一些。你正在開發什麼系統? (Windows Phone,黑莓,Android,iOS,...)?什麼設備(平板電腦,手機)?你支持哪些版本(iOS 7.1 +,...)?如果可能,請爲您下載的壓縮文件中的index.html文件顯示一個示例。也許你的應用程序的文件夾結構,以瞭解你想達到什麼......謝謝 – Scriptlabs 2014-12-10 12:18:15

+0

正如我在開始說「我有一個** iOS ** Cordova應用程序」。謝謝 – 2014-12-11 15:15:47

回答

5

解決方案成立!

在幾乎所有的android和iOS示例中,正在執行的下載內容從「cordova.file.documentsDirectory」

然後,當你通過或(通過使用AJAX)鏈接這個內容時,一切正常(CSS,圖像,鏈接),但媒體標籤(和)。

同樣,我不知道爲什麼,但幾乎所有的例子下載和解壓縮使用此路徑的內容。

經過幾天被這個問題阻塞(我發現很多論壇,開發人員必須使用Cordova Media,jaeger25 Html5Video等等插件來修改他們所有的項目),我嘗試使用以下路徑: 「cordova.file.dataDirectory」

我下載,從此路徑解壓縮並執行HTMLS和一切工作沒有解析/修改的HTML文件(在我的情況是:千美元)。 與IFRAME中的相對路徑的100%兼容性和標籤!!!!!!

+0

您可以通過+1自行尋找解決方案,並與我們分享! – Scriptlabs 2014-12-14 18:32:46

0

我想你編碼的視頻鏈接到你在設備上解壓縮的zip裏面的index.html。

這些鏈接需要使用JavaScript解析器進行「更新」,在實際加載或導航到您的phonegap應用程序中的此頁面之前。

如果你的例子是Android造成的,你definetly需要在這裏包括HTML5視頻插件:

https://github.com/jaeger25/Html5Video

在iOS設備上的標籤會爲本地文件。但鏈接必須是絕對的。

如果您重新編譯或重新安裝應用程序,鏈接將發生變化。 這些文件將可用,但APP ID已經更改並且絕對路徑也一樣。在iOS路徑的

例子:

/var/mobile/Applications/<application UUID>/Documents/path/to/file 

希望你解決你的問題。

+0

要「更新」HTML不是一種選擇。下載的內容以多種方式顯示視頻(通過嵌入和/或通過JQuery插入的視頻標籤等)。每個ZIP都帶有數十個HTML的「micro-html5-application」,以及具有特定CSS樣式的視頻,其中一些自動播放,一些具有與視頻同步的交互內容等。 – 2014-12-11 15:20:12

+0

使用插件不是一個選項,對於相同的「用戶體驗」要求。 – 2014-12-11 15:20:36