2011-09-12 10 views
3

ライブラリーからビデオを選択し、それを自分のサーバーにアップロードする必要があります。ライブラリからビデオを選択するためのphonegapプラグイン

新しいビデオ(captureVideo)を録画してアップロードすることはできますが、ビデオライブラリを開いてビデオを選択してアップロードする方法はありません。

これを行う方法はありますか? MediaTypeを何とか変更してください navigator.camera.getPicture?

すべてのヘルプは高く評価され、感謝事前に

Nilesh

答えて

0

次のように我々はこの問題を解決:

function ideaCommitLibraryVideoAttach() { 
if(PhoneGap.available) { 
    var options = {quality: 80}; 
    options["sourceType"] = 0; 
    options["correctOrientation"] = true; 
    options["allowEdit"] = true; 
    options["mediaType"] = 1; 
    navigator.camera.getPicture(ideaCommitLibraryVideoReceive, ideaCommitVideoAttachFail, options); 
} 
} 

function ideaCommitLibraryVideoReceive(data) { 
if(PhoneGap.available) { 
    var gotFS = function(fileSystem) { 
     var fail = function() {notify("Can't open file!");}; 
     var gotFileEntry = function(fileEntry) { 
      var fail = function() {notify("Can't write attachment in a temporary file!");}; 
      var gotFileWriter = function(fileWriter) { 
       fileWriter.onwriteend = function(evt) { 
        ideaCommitVideoReceive([fileEntry]); 
       }; 
       fileWriter.write(data); 
      }; 
      fileEntry.createWriter(gotFileWriter, fail); 
      file = fileEntry; 
     }; 
     fileSystem.root.getFile("y"+ new Date().getTime()+".mp4", {create: true, exclusive: false}, gotFileEntry, fail); 

    }; 
    var fail = function() {notify("Can't open file system!");}; 
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail); 
} 
} 

を次のようにこれで残る唯一の問題がある:私達は見つかりませんでしたメソッドはファイルとしてビデオにアクセスしますが、base64でのみエンコードされます。したがって、私たちは、アプリケーションの内部からビデオを選択した後、ユーザにプレビューの可能性を与えることはできません。誰かがこれを解決する方法のアイデアを持っていますか?

+0

ちょっとChagemeiあなたのコードを説明できますか?私は何が起こっているのか知っていると思うが、それは私のために働いていないので、理由を理解する必要がある)関数ideaCommitVideoReceive([fileEntry] – SomethingOn

0

ライブラリから要素をプレビューする最も簡単な方法または最近のキャプチャがgetPictureの成功の呼び出しで返されたURIを持つネイティブ

HTML5のビデオ、画像やオーディオタグを使用することで、

capturePicture 、captureVideoまたはcaptureAudio ...それが助けてくれることを願っています。

関連する問題