2015-06-22 51 views
0

我正在使用cordova media插件來錄製voice.Once我已錄製它。我想把它發送到服務器。爲此,我正在使用FileUpload和FileTransfer.But我面臨着獲取錄製文件的問題。如何獲取錄製的音頻文件?我已經通過cordova文件插件文檔,但沒有正確理解。如何使用cordova錄製後獲取音頻文件

<html> 
    <head> 
     <script src="cordova.js"></script> 
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 

    <script> 
       var filename;   
       var mediaRec; 



      function recordAudio() { 
        filename = "myrecording "+new Date().getTime()+".amr"; 

        mediaRec = new Media(filename, onSuccess, onError); 
        mediaRec.startRecord(); 
      } 
      function onSuccess(){} 
      function onError(){} 
      function stopRecord(){ 
       mediaRec.stopRecord(); 
       sendAudio(); 

      } 

      function sendAudio(){ 

       var options = new FileUploadOptions(); 
           options.fileKey = "attachmentFileName"; 
           options.fileName = filename; 
           options.mimeType="audio/AMR"; 


           new FileTransfer().upload(filename,encodeURI("my url"), win, fail, options); 


      } 
function win(r) { 
    alert("success"); 
    } 
    function fail(error) { 
    alert("fail"); 
    alert(error.code); 
    } 
     </script> 
    </head> 
    <body> 

     <button onClick="recordAudio();">Start</button> 
     <button onClick="stopRecord();">Stop</button> 

    </body> 
    </html> 

回答

0

其工作

<html> 
<head> 

    <script src="cordova.js"></script> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
    <script> 

     var filename;   
     var mediaRec; 
     function recordAudio() { 
     filename = "myrecording "+new Date().getTime()+".3gpp"; 

     mediaRec = new Media(filename, onSuccess, onError); 
     mediaRec.startRecord(); 


      } 
     }, 1000);*/ 
    } 
    function onSuccess(){} 
    function onError(){} 
    function stopRecord(){ 
     mediaRec.stopRecord(); 
     uploadVoice(filename,""); 



    } 

     function uploadVoice(fileName, dirName) { 

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

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

    // file system fail 
    var fsFail = function(error) { 
     alert("file system error"); 

    }; 

    var dirFail = function(error) { 
     alert("Directory error"); 

    }; 

    var fileURI; 

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

      fileURI = dataDir.toURL(); 
      fileURI = fileURI + '/' + fileName; 

      var options = new FileUploadOptions(); 
      options.fileKey = "fileKey"; 
      options.fileName = fileURI.substr(fileURI.lastIndexOf('/') + 1); 
      options.mimeType = "Audio/3gpp"; 
      options.chunkedMode = false; 

      var params = new Object(); 
      params.name = value; 
      options.params = params; 

      var ft = new FileTransfer(); 
      ft.upload(fileURI, "my url", win, fail, options); 

     }, dirFail); 

    }; 

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

} 


    </script> 
<body> 
    <button onClick="recordAudio();">Start</button><br/><br/> 
    <button onClick="stopRecord();">Stop</button> 

</body> 

</head> 
</html> 
相關問題