JQuery Mobile如何将音频文件发送到服务器

时间:2014-01-28 03:07:05

标签: android jquery jquery-mobile cordova

我已经使用手机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做到这一点?

1 个答案:

答案 0 :(得分:0)

我记得有一个类似的问题,在我的情况下,问题是捕获返回完整路径,上传需要不同格式的文件路径,所以我不得不以上传接受的格式修改完整路径。

还要确保在上传功能中设置mimeType。它默认为image / jpeg。我不确定您的服务器的行为方式,但如果它有自签名证书,那么您必须将trustAllHosts设置为true。

希望这有帮助