media.startRecord

Starts recording an audio file.

media.startRecord();

Description

The media.startRecord method executes synchronously, starts a recording for an audio file.

Supported Platforms

  • Android
  • iOS
  • Windows Phone 7 and 8
  • Windows 8

Quick Example

// Record audio
//
function recordAudio() {
    var src = "myrecording.mp3";
    var mediaRec = new Media(src,
        // success callback
        function() {
            console.log("recordAudio():Audio Success");
        },

        // error callback
        function(err) {
            console.log("recordAudio():Audio Error: "+ err.code);
        });

    // Record audio
    mediaRec.startRecord();
}

Full Example

<!DOCTYPE html>
<html>
  <head>
    <title>Device Properties Example</title>

    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Wait for device API libraries to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // Record audio
    //
    function recordAudio() {
        var src = "myrecording.amr";
        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);
    }

    // device APIs are available
    //
    function onDeviceReady() {
        recordAudio();
    }

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

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

    // Set audio position
    //
    function setAudioPosition(position) {
        document.getElementById('audio_position').innerHTML = position;
    }

    </script>
  </head>
  <body>
    <p id="media">Recording audio...</p>
    <p id="audio_position"></p>
  </body>
</html>

Android Quirks

  • Android devices record audio in Adaptive Multi-Rate format. The specified file should end with a .amr extension.

iOS Quirks

  • iOS only records to files of type .wav and returns an error if the file name extension is not correct.

  • If a full path is not provided, the recording is placed in the application's documents/tmp directory. This can be accessed via the [File](../file/fileobj/fileobj.html) API using [LocalFileSystem](../file/localfilesystem/localfilesystem.html).TEMPORARY. Any subdirectory specified at record time must already exist.

  • Files can be recorded and played back using the documents URI:

      var myMedia = new Media("documents://beer.mp3")
    

Tizen Quirks

  • Not supported on Tizen devices.