The τ Recorder API


You use startRecorder() to start recording in an open session. startRecorder() has the destination file path as parameter. It has also 7 optional parameters to specify :

  • codec: The codec to be used. Please refer to the Codec compatibility Table to know which codecs are currently supported.
  • toFile: a path to the file being recorded or the name of a temporary file (without slash ‘/’).
  • toStream: if you want to record to a Dart Stream. Please look to the following notice. This new functionnality needs, at least, Android SDK >= 21 (23 is better)
  • numChannels: The number of channels (1=monophony, 2=stereophony)
  • sampleRate: The sample rate in Hertz (for PCM)
  • bitRate: The bit rate in Hertz
  • audioSource : (only on Android, ignored on iOS and web. Possible values are :
    • defaultSource
    • microphone
    • voiceDownlink
    • camCorder
    • remote_submix
    • unprocessed
    • voice_call
    • voice_communication
    • voice_performance
    • voice_recognition
    • voiceUpLink
    • bluetoothHFP
    • headsetMic
    • lineIn

path_provider can be useful if you want to get access to some directories on your device. To record a temporary file, the App can specify the name of this temporary file (without slash) instead of a real path.

Flutter Sound does not take care of the recording permission. It is the App responsability to check or require the Recording permission. Permission_handler is probably useful to do that.


    // Request Microphone permission if needed
    PermissionStatus status = await Permission.microphone.request();
    if (status != PermissionStatus.granted)
            throw RecordingPermissionException("Microphone permission not granted");

    await myRecorder.startRecorder(toFile: 'foo', codec: t_CODEC.CODEC_AAC,); // A temporary file named 'foo'
        Lorem ipsum ...
Tags: api recorder