2016-01-05 13 views
5

में परिणाम रिकॉर्डिंग मैं एंड्रॉइड उपकरणों पर कॉर्डोवा मीडिया प्लगइन का उपयोग कर ऑडियो रिकॉर्ड करने के लिए निम्न कोड का उपयोग कर रहा हूं। StopRecord() पर सफलतापूर्वक लौटने के बावजूद इसका परिणाम एक खाली ऑडियो फ़ाइल में होता है। क्या कोई इस बात के साथ गलत हो सकता है कि इस कोड के साथ क्या गलत हो सकता है?कॉर्डोवा मीडिया प्लगइन का उपयोग कर ऑडियो रिकॉर्डिंग रिक्त फ़ाइल

$cordovaFile.createFile(cordova.file.dataDirectory, 'new-rec.amr'), false) 
    .then(function (fileObj) { 
     console.log('File created', fileObj); 

     var nativePath = fileObj.nativeURL; 
     resolveLocalFileSystemURL(nativePath, function (entry) { 
     var internalPath = entry.toInternalURL(); 

     var mediaRec = new Media(internalPath, 
      //success callback 
      function (success) { 
      console.log("record success", success); 
      }, 

      //error callback 
      function (err) { 
      console.log("record error: " + JSON.stringify(err)); 
      }); 

     // Start recording audio 
     mediaRec.startRecord(); 
     }); 
    }, function (error) { 
     console.log('Cannot create a file to initiate a new recording', error); 
    }); 
+0

इस के साथ किसी भी भाग्य:

यहाँ मेरी कोड है? मुझे भी यही समस्या हो रही है –

उत्तर

0

मुझे आज भी यही समस्या हो रही थी। मीडिया ऑब्जेक्ट को जारी करके इसे हल करें। मुझे यकीन नहीं है कि इससे मदद क्यों मिली, लेकिन मुझे यह महसूस हो रहा है कि ओएस इसे सहेजने के बजाय मीडिया ऑब्जेक्ट पर रख रहा है और फिर इसे रिलीज़ होने के बाद यह ठीक से सहेजा गया है?

हालांकि 100% निश्चित नहीं है। यह अन्य कॉर्डोवा निर्देशिकाओं (जैसे cordova.file.externalDataDirectory) में रिलीज़ किए बिना काम करता है।

var fileName = randomFileName(); 
fileName = fileName + ".aac"; 
var store = cordova.file.dataDirectory; 

window.resolveLocalFileSystemURL(store, function(dir){ 

    var directoryToSave = dir.nativeURL + fileName;   

    $scope.audioRecording = new Media(directoryToSave, audioRecordingSuccess, audioRecordingFail, audioStatus); 

    $scope.audioRecording.startRecord(); 

    setTimeout(function(){ 
     $scope.audioRecording.stopRecord(); 
     $scope.audioRecording.release(); 
    }, 5000); 

}); 
संबंधित मुद्दे