###前提・実現したいこと
monacaでスマートフォンアプリを開発しています。
保存済みのwavファイル(メディア操作プラグインを利用して録音したファイル)があり、これからbase64エンコードされた文字列を取り出したいです。
保存したファイルは、 file:///foo/bar/record.wav という内部パスに保存されていることがわかっています。
Fileオブジェクトの作成の方法が悪いか、もしくはファイルのパーミッションなどに問題がある?と思っていますが、原因や解決方法を見つけられていません。
###発生している問題
wavファイルの内部パスがわかっている状況から、FileReaderのreadAsDataURLを使ってbase64エンコードされた文字列を取り出そうとしています。wavファイルそのものは読み込めていると思われるのですが、base64のデータが取得できません。
###該当のソースコードの抜粋
JavaScript
1getBase64String("file:///foo/bar/record.wav"); 2 3function getBase64String(fpath){ 4 var reader=new FileReader(); 5 window.resolveLocalFileSystemURL(fpath,dataLoadSuccess,dataLoadError); 6 function dataLoadSuccess(data) { 7 var audioFile = new window.File( 8 data.name, 9 data.nativeURL, 10 "audio/wav" 11 ); 12 reader.readAsDataURL(audioFile); 13 } 14 15 reader.onloadend = function() { 16 console.log(JSON.stringify(reader)); // 結果は下に記載 17 var result = reader.result; 18 var ary = result.split(","); 19 data64 = ary[1]; 20 } 21}
console.logの出力
1{"_readyState":2,"_error":null,"_result":"data:audio/vnd.wave;base64,","_progress":0,"_localURL":"file:///foo/bar/record.wav","_realReader":{}}
###試したこと
console.logの出力にあるように、resultが"data:audio/vnd.wave;base64,"となって、ちょうどbase64のデータが入って欲しいところが空っぽになってしまっています。
new window.File
でFileオブジェクトを作ろうとしているのですが、ここのパラメータで問題があるような気がしていますが、Fileオブジェクトを作るための説明を見つけられず、正しいのかどうかの判断ができていません。
何かおわかりの方がいらっしゃいましたら、ぜひお教えください。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。