我已经使用手机Gap为Android实现了一个应用程序。
在应用程序中,我有两个按钮,一个是语音注册,另一个是语音验证。
对于语音注册我在Phone Gap中使用CaptureAudio实现了记录功能。它很棒。
现在我需要将Record文件上传到服务器。我使用了以下代码。
function captureSuccess(mediaFiles) {
var i, len;
for (i = 0, len = mediaFiles.length; i < len; i += 1) {
alert(mediaFiles[i]);
uploadFile(mediaFiles[i]);
}
}
function captureError(error) {
var msg = 'An error occurred during capture: ' + error.code;
navigator.notification.alert(msg, null, 'Uh oh!');
}
function captureAudio() {
navigator.device.capture.captureAudio(captureSuccess, captureError, {limit: 3);
}
// Upload files to server
function uploadFile(mediaFile) {
var ft = new FileTransfer(),
recordingPath = mediaFile.fullPath,
name = mediaFile.name;
console.log('Path is: ' + recordingPath);
ft.upload(recordingPath,
"Webservice URL",
function(result) {
alert("Hi");
console.log('Upload success: ' + result.responseCode);
console.log(result.bytesSent + ' bytes sent');
},
function(error) {
alert("welcome");
console.log('Error uploading file ' + recordingPath + ': ' + error.code);
},
{ fileName: name });
alert(recordingPath);
}
当我提醒媒体文件[i]收到“对象对象”时。上传后我无法收到任何回复。
一旦成功,我们会从服务器收到一些有关音频文件的消息。
我也将音频文件名称发送为'utterence'。我怎么能用phonegap和jquery mobile做到这一点?
答案 0 :(得分:0)
我记得有一个类似的问题,在我的情况下,问题是捕获返回完整路径,上传需要不同格式的文件路径,所以我不得不以上传接受的格式修改完整路径。
还要确保在上传功能中设置mimeType。它默认为image / jpeg。我不确定您的服务器的行为方式,但如果它有自签名证书,那么您必须将trustAllHosts设置为true。
希望这有帮助