Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using PhoneGap to record audio to documents folder on iOS

As part of an iPhone app I'm creating using PhoneGap, I need to be able to use the microphone to record to a new file which is sorted in the apps document folder on the phone.

I think I have the code sorted to actually capture the recording I'm just having trouble creating a blank .wav in the documents folder to record to. According to the PhoneGap API iOS requires that the src file for the audio already exists.

Can anyone help my with the couple of lines of code needed to create this blank file? My code so far is -

function recordAudio() {
    var src = "BLANK WAV IN DOCUMENTS FOLDER";
    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;
        if (recTime >= 10) {
            clearInterval(recInterval);
            mediaRec.stopRecord();
        }
    }, 1000);
}

function onSuccess() {
    console.log("recordAudio():Audio Success");
}

// onError Callback 
function onError(error) {
    alert('code: '    + error.code    + '\n' + 
          'message: ' + error.message + '\n');
}

$('#record-button').
bind('tap', function(){
    recordAudio();
})
like image 816
nicktones Avatar asked Feb 02 '26 06:02

nicktones


1 Answers

You may need to create the file first using the File API.

document.addEventListener("deviceready", function onDeviceReady() {
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, function fail(){});
}, false);

var gotFS = function (fileSystem) {
    fileSystem.root.getFile("blank.wav",
        { create: true, exclusive: false }, //create if it does not exist
        function success(entry) {
            var src = entry.toURI();
            console.log(src); //logs blank.wav's path starting with file://
        },
        function fail() {}
    );
};
like image 81
Pierre Avatar answered Feb 03 '26 20:02

Pierre