ios
  • xcode
  • cordova
  • ionic-framework
  • cordova-plugins
  • 2016-09-22 5 views 2 likes 
    2

    이온 성 응용 프로그램에서 작업 중이므로 오디오 파일을 녹음해야하므로 cordova-plugin-media를 사용 했으므로 Android에서 잘 작동했지만 시도해 보았습니다.ionic Cordova 미디어 플러그인을 사용하여 IOS에 오디오를 녹음하지 못했습니다.

    { "메시지": "코드" "AVAudioRecorder를 사용하여 녹음을 시작하지 못했습니다": 1} :

    var extension = '.wav'; 
    var name = 'filename'; 
    var audio = null; 
    var filepath; 
    
    $scope.startRecording = function() { 
        name = Utils.generateFilename(); 
        if(device.platform == "iOS") 
        { 
        //var path = "documents://"; 
        //var path = cordova.file.documentsDirectory; 
        //var path = cordova.file.cacheDirectory; 
        var path = cordova.file.dataDirectory; 
        path = path.replace("file:///", "cdvfile://"); 
    
        } 
        else if(device.platform == "Android") 
        { 
        var path = cordova.file.externalApplicationStorageDirectory; 
        } 
        var filename = name + extension; 
        filepath = path + filename; 
        audio = new Media(filepath, function(e){console.log(e, "success Media");},function(e){console.log(e, "error");}); 
        audio.startRecord(); 
    
        }; 
    
        $scope.sendAudioMsg = function() { 
        audio.stopRecord(); 
        audio.release(); 
        }; 
    

    여기

    내 코드 IOS 나는이 오류 내가 로그 할 때 경로 난이 얻을 :

    cdvfile을 : //var/mobile/Containers/Data/Application/F47A76AD-E776-469F-8EFA-85B0A0F14754/Library/NoCloud/dJzSapEU6k16hV7EGrD06L29NjZcOCVzHCUTrcjEDiTCF7uUNGmCHchEcwfGls3V88p85ij0NUkv0KVagevbgh3lwWsEfmAO8uNq.wav

    수 어느 하나 도와주세요 ??

    +0

    에 "cordova.file.tempDirectory + SRC"를 전달하여 임시 디렉토리를 사용하여 기록 파일의 위치를 ​​해결 끝. 이 문제를 해결 했습니까? – Ionut

    답변

    0

    Android에서 다음을 시도해보십시오. 녹음과 함께 완료 후

    var path = "Android/data/"+YOUR_APP_ID+"/files/"+FILENAME+".wav"; 
    
    var myMedia = new Media(path, success, error); 
    myMedia.startRecord(); 
    

    파일에 액세스하려면

    var path = cordova.file.externalApplicationStorageDirectory+"files/"+FILENAME+".wav"; 
    var myMedia1 = new Media(path, success, error); 
    myMedia1.play(); 
    

    YOUR_APP_ID이 com.test.app 것

    아이폰 OS는 파일

    에 액세스하려면

    var fileName = "myrec.wav"; 
    var myMedia = new Media(path, success, error); 
    myMedia.startRecord(); 
    

    을 다음을 참조 (210)

    +0

    나는 안드로이드에 아무런 문제가 없다. 하지만 나는 IOS 에서이 오류가 제목에 그것을 언급 한 덕분에 –

    +0

    내 대답을 업데이 트했습니다 참조하십시오. – user5091906

    +1

    iOS에서 .wav를 사용하는 경우에도 "AVAudioRecorder를 사용하여 녹음을 시작하지 못했습니다." – Ionut

    0

    내 대답은 IOS 용으로 만

    그리고 내가 실현 녹화 미디어를 사용하려고하고 조합

    var pathFile = cordova.file.dataDirectory; 
    pathFile = 'documents://'; 
    pathFile = cordova.file.documentsDirectory; 
    

    아래의 하나에 기록 된 파일의 위치를 ​​설정할 때 나는 같은 오류 메시지를 가졌다

    파일 이름 만 전달하면 Temp 디렉토리 (cordova.file.tempDirectory)에 파일이 저장되므로이 방법으로 IOS에서 작동하도록 녹음을 끝낼 수 있습니다. (전체 코드와 내 유일한 메모는 미디어를 사용하고 있습니다. 플러그인은 일반 미디어 플러그인 대신 압축 됨)

    (210)
    // Save the recorded fileName 
        var fileName = Math.floor((Math.random() * 100000) + 1) + ".m4a"; 
    
        if (ionic.Platform.isIOS()) { 
         var pathFile = ''; 
        } else { 
         var pathFile = cordova.file.externalDataDirectory; 
        } 
    
        src = pathFile + fileName; 
    
        if (mediaRec == null) { 
         mediaRec = new Media(src, 
          // success callback 
          function() { 
           console.log("recordCompressedAudio():Audio Success"); 
          }, 
    
          // error callback 
          function (err) { 
           console.log("recordCompressedAudio():Audio Error: " + err.code); 
           console.log(err); 
          }); 
        } 
    
        // Record MPEG compressed audio, single channel at 16kHz 
        var options = { 
         SampleRate: 16000, 
         NumberOfChannels: 1 
        } 
    
        mediaRec.startRecordWithCompression(options); 
    
        console.log("Recording Started"); 
        console.log(mediaRec); 
    } 
    

    그럼 내가 같은 문제를 encoutered resolveLocalFileSystemURL

    console.log("Recording Stopped"); 
        console.log(mediaRec); 
        mediaRec.stopRecord(); 
        mediaRec.release(); 
    
        resolveLocalFileSystemURL(
         cordova.file.tempDirectory + src, 
         function (entry) { 
          console.log('cdvfile URI: '); 
          console.log(entry); 
          player.src = entry.toURL(); 
          console.log("Saved file location :" + src.toInternalURL()); 
         }, 
         function (error) { 
          console.log('about to resolve this files errors'); 
          console.log(error); 
         }); 
    
    +0

    작동하지 않음, 위 답변과 동일 –

    관련 문제