Cordova FileプラグインのreadAsDataURL関数を使用して、ビデオファイルのbase64バージョンを取得しようとしています。私のコードは次のようになります。Cordova FileプラグインreadAsDataURLがファイルデータを返さない
Media: recordVideo: cordova.file.dataDirectory = file:///var/mobile/Containers/Data/Application/764345DC-A77D-43C2-9DF7-CDBE6A0DC372/Library/NoCloud/, path = private/var/mobile/Containers/Data/Application/764345DC-A77D-43C2-9DF7-CDBE6A0DC372/tmp/50713961066__4FD8AF8D-BD36-43A4-99CC-F328ADFD7E38.MOV
二console.log
返されたデータを示しています
recordVideo()
{
return new Promise(resolve =>
{
let options: CaptureVideoOptions = { limit: 1, duration: 2 };
MediaCapture.captureVideo(options)
.then(
(data: MediaFile[]) => {
console.log('Media: recordVideo: cordova.file.dataDirectory = ' + cordova.file.dataDirectory + ', path = ' + data[0].fullPath.substring(1));
// Turn the video file into base64
let base64File = File.readAsDataURL(cordova.file.dataDirectory, data[0].fullPath.substring(1));
console.log('Media: recordVideo: got video with data = ' + JSON.stringify(data));
console.log('Media: recordVideo: base64File = ' + JSON.stringify(base64File));
resolve(data);
},
(err: CaptureError) => console.error('ERROR - Media: recordVideo: captureVideo error = ' + err)
);
});
}
最初console.log
からの出力はreadAsDataURL
に渡されたパラメータの値を示していますMediaCaptureプラグインによる:
Media: recordVideo: got video with data = [{"name":"50713961066__4FD8AF8D-BD36-43A4-99CC-F328ADFD7E38.MOV","localURL":"cdvfile://localhost/temporary/50713961066__4FD8AF8D-BD36-43A4-99CC-F328ADFD7E38.MOV","type":"video/quicktime","lastModified":null,"lastModifiedDate":1485446813000,"size":195589,"start":0,"end":0,"fullPath":"/private/var/mobile/Containers/Data/Application/764345DC-A77D-43C2-9DF7-CDBE6A0DC372/tmp/50713961066__4FD8AF8D-BD36-43A4-99CC-F328ADFD7E38.MOV"}]
最後console.log
readAsDataURL
から返された値を示しています。
Media: recordVideo: base64File = {"__zone_symbol__state":null,"__zone_symbol__value":[]}
は(私が見つけることができる)、これを使用して上の無ドキュメントの隣にあります。
以下のようにそれを使用することができ、File.readAsDataURLは約束を返します。 File.readAsDataURL(cordova.file.dataDirectory、data [0] .fullPath.substring(1))を試したことがありますか?(結果)=> {console.log(result);} – AishApp
なぜ私はエラーをキャッチしているように動作していません。私は、キャプチャビデオによって返されたfullPathを使用しようとすると、エラー '私はフルパスからスラッシュを削除すると、私はlocalURLを渡しますが、エラー 'ENCODING_ERR'が表示されます。これをどのように動作させるためのアイデアですか? –
ファイルを探しているパスが正しいかどうかチェックしましたか?/35388817/cordovafile-removefile-checkdir-error-5-encoding-errも役に立ちます。 – AishApp