2012-05-26 45 views
3
記錄後

我也做了標準的聲音與PhoneGap的記錄:PhoneGap的 - 我如何上傳音頻文件與PhoneGap的的media.startRecord

function recordSound() { 

    var src = "mysound.mp3"; 
    var mediaRec = new Media(src, onSuccess, onError); 

    // Record audio 
    mediaRec.startRecord(); 

    // Stop recording after 10 sec 
    var recTime = 0; 
    var recInterval = setInterval(function() { 
     recTime = recTime + 1; 
     setAudioPosition(recTime + " sec"); 
     if (recTime >= 10) { 
      clearInterval(recInterval); 
      mediaRec.stopRecord(); 
     } 
    }, 1000); 

} 

我想現在上傳此文件(mysound.mp3)而不讓用戶必須選擇自己。任何幫助將不勝感激。

到目前爲止,我已經做了:

function win(r) { 
    console.log("Code = " + r.responseCode); 
    console.log("Response = " + r.response); 
    console.log("Sent = " + r.bytesSent); 
} 

function fail(error) { 
    alert("An error has occurred: Code = " + error.code); 
    console.log("upload error source " + error.source); 
    console.log("upload error target " + error.target); 
} 

function up() {// !! Assumes variable fileURI contains a valid URI to a text 
    // file on the device 

    var fileURI = "/mnt/sdcard/mysound.mp3"; 
    var options = new FileUploadOptions(); 
    options.fileKey = "file"; 
    options.fileName=fileURI.substr(fileURI.lastIndexOf('/')+1); 
    options.mimeType = "audio/mp3"; 

    var params = new Object(); 
    params.value1 = "test"; 
    params.value2 = "param"; 

    options.params = params; 

    var ft = new FileTransfer(); 
    ft.upload(fileURI, "http://myserver/upload.php", win, fail, options); 
} 

我得到:java.io.IOException: Received from server

JSCallback Error: Request failed

高興的幫助。

回答

4

您可以使用此功能將文件上傳

function uploadVoice(fileName, dirName, fileMime, uploadURL) { 

    var win = function (r) { 
     console.log("Code = " + r.responseCode); 
     console.log("Response = " + r.response); 
     console.log("Sent = " + r.bytesSent); 
    }; 

    // upload failure 
    var fail = function(error) { 
     alert("An error has occurred: Code = " + error.code); 
    }; 

    // file system fail 
    var fsFail = function(error) { 
     alert("failed with error code: " + error.code); 

    }; 

    var dirFail = function(error) { 
     alert("Directory error code: " + error.code); 

    }; 

    var fileURI; 

    var gotFileSystem = function (fileSystem) { 
     fileSystem.root.getDirectory(dirName, { 
      create: false 
     }, function (dataDir) { 

      fileURI = dataDir.fullPath; 
      fileURI = fileURI + '/' + fileName; 

      var options = new FileUploadOptions(); 
      options.fileKey = "file"; 
      options.fileName = fileURI.substr(fileURI.lastIndexOf('/') + 1); 
      options.mimeType = fileMime; 

      var params = new Object(); 
      params.value1 = "test"; 
      params.value2 = "param"; 

      options.params = params; 

      var ft = new FileTransfer(); 
      ft.upload(fileURI, uploadURL, win, fail, options); 

     }, dirFail); 

    }; 

    // get file system to copy or move image file to 
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFileSystem, fsFail); 

} 

希望這有助於

0

優秀。真的幫助了ios。

簡單的輸入錯誤var fail fixed below以下。

var fail = function(error) { 
    alert("An error has occurred: Code = " + error.code); 
};