- 我们有一个记录音频的应用程序,它使用了 PhoneGap 媒体 API,在 iOS 的情况下是文件 API。
- 当用户单击Accept & Upload按钮时,应用程序使用 PhoneGap 的 File.FileTransfer() 方法将该文件移动到服务器。
- 适用于iOS,Android不太好。
- 当我将我的 Android 设备连接到我的计算机并安装为驱动器时,我可以看到该文件正在根目录中创建,这正是它应该在的位置。
- 创建音频文件后,我可以从存储在全局变量
fullRecordPath
which =中的位置在我的设备上播放文件recording.wav
- 当我尝试将 File.FileTransfer() 指向该路径时,我得到错误代码 = 1,我知道这是未找到文件
处理接受和上传点击事件的代码:
$('#btnAcceptUpload').live('tap',function () {
if(isIOS){
thisFileToUpload = fullRecordPath;
} else {
// thisFileToUpload = './'+fullRecordPath; //doesn't work
// thisFileToUpload = 'file:///'+fullRecordPath; //doesn't work
thisFileToUpload = fullRecordPath; //doesn't work
}
var options = new FileUploadOptions();
msg = '';
options.fileKey="file";
msg += "options.fileKey = "+options.fileKey+"\n";
options.fileName=thisFileToUpload.substr(thisFileToUpload.lastIndexOf('/')+1);
msg += "options.fileName = "+options.fileName+"\n";
options.mimeType='audio/wav';
options.chunkedMode = false;
msg += "options.mimeType = "+options.mimeType+"\n";
msg += "thisFileToUpload = "+thisFileToUpload;
alert(msg);
var ft = new FileTransfer();
ft.upload(thisFileToUpload, "http://10.0.17.121/~email/ttmovefiles.php", fileUploadSuccess, fileUploadFailure, options);
});
成功回调:
function fileUploadSuccess(r) {
console.log("Code = " + r.responseCode);
console.log("Response = " + r.response);
console.log("Sent = " + r.bytesSent);
alert(r.response);
}
失败回调:
function fileUploadFailure(error){
alert("An error has occurred: Code = " + error.code);
}
感谢您的关注。