2015-09-11 148 views
1

我正在開發Cordova應用程序並使用PouchDB作爲數據庫,當連接可用時,將所有信息複製到CouchDB。 我成功存儲簡單的文本和圖像。 我一直在試圖存儲視頻和音頻,沒有運氣。在PouchDB中存儲視頻/音頻

我存儲數據的方式是:

var emo = { 
     _id: timestamp, 
     user: uuid, 
     location: curLatLng, 
     _attachments: 
      { 
       "image.jpg": 
       { 
        content_type:"image\/jpeg", 
        data: image 
       }, 
       "video.mp4": 
       { 
        content_type:"video\/mp4", 
        data: video 
       } 
     } 
    }; 
    db.put(emo, function callback(err, result) { 
     if (!err) { 
      //console.log('Successfully posted a todo!'); 
     } 
    }); 

我創建的「視頻」以下列方式或多或少: Cordova - Capture video and retrieve base64 data

因此,在結束其格式爲BLOB。

首先,我不確定是否可以在PouchDB中存儲音頻/視頻。如果有可能,你能發現我做錯了什麼嗎?我應該採用不同的方法嗎?

非常感謝您的時間!

+0

你見過文檔:http://pouchdb.com/guides/attachments.html? –

+0

是的,我看到了。我首先嚐試保存路徑,所以回調函數「mediaFiles [0] .fullPath」中的變量。然後我也嘗試保存爲blob,使用這裏的函數http://stackoverflow.com/questions/26733070/cordova-capture-video-and-retrieve-base64-data。我遵循了文檔,但我認爲我缺少一個細節或存儲視頻是不可能的,因爲它在文檔中沒有提及。 (只是文字和圖片的具體描述。) –

回答

2

PouchDB絕對支持存儲Blob;有解釋如何的a guide to attachments

這是a little demo顯示如何存儲文件。您可以從文件系統上載任何文件,並將其存儲在PouchDB中。希望有所幫助!

+0

非常感謝。您的迴應非常有幫助。最後我可以存儲在PouchDB中。但是我面臨另一個問題。現在我可以存儲在PouchDB中,但是複製到CouchDB從不會在我的物理Android設備上發生。奇怪的是,這可以在我的PC瀏覽器和仿真器上運行。這實際上兩天前也在我的Android設備上工作。你能猜出原因嗎? –

+0

可能您的CouchDB不能從任何地方進行訪問,除了您正在運行它的計算機。嘗試將「綁定地址」設置爲0.0.0.0而不是127.0.0.1。確保您可以從另一臺計算機上訪問它(例如Android設備上的網絡瀏覽器)。 – nlawson